mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-29 01:21:02 +02:00
dev-python/docutils: Sync with Gentoo
It's from Gentoo commit 026ce04830608e1d96f38f680f681c4f5e80ad26.
This commit is contained in:
parent
f1b644ec7e
commit
beae7f0b67
@ -1,3 +1,2 @@
|
|||||||
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.20.1.tar.gz 2058365 BLAKE2B 73fb8302599ffe57b0840c898b0b2e3ccd39ff9ea6eec2b5d345d02c950e1a8357bd821e62733b0484e82bc30e71d30fab381390b0edaef4375b02bcd9eeeb40 SHA512 a0ddca315d03677003036d6a8052ac96fbd3fcc4508564938ea684d79bedb4d322d83449c7b26e55b19b0aadd6e46ca9ac409bb16279a20f06c70e9c15ef5eb0
|
||||||
DIST docutils-0.21.1.tar.gz 2201080 BLAKE2B a89792a69a7faa0eda7b2470e5e3a3d3cf8250a3577553a8f8f8d3d86d2693394e97dca6c75c1b4815748d2ce126ccd3f71dead5763ec8b70aee7be183165473 SHA512 2816fe074b12d7f15fb6730339f3af5f459f50af0cd2a4922194887f48bfd9931c2f2054a17a5418585b586502b96e05ed18600d31c523084537dc72707ab0ee
|
DIST docutils-0.21.2.tar.gz 2204444 BLAKE2B 727c2f97fc5835a0ffa62e38ea85af366cd89ad1eaec0b8af8b1f3b12e6cddfddb65161ba34f9109952d37ba2cf8985f3c3b6905ebb2ac1c9a984cce3fb4d170 SHA512 7fafa331f5687448e80d299c20cdccc4b49819fa471b5f586bf0ab18c694ba43a70f58e7c76b0a70a16267585548389214e11a4998ad7fdc19a27f0f7644539c
|
||||||
|
@ -1,76 +0,0 @@
|
|||||||
# Copyright 1999-2023 Gentoo Authors
|
|
||||||
# Distributed under the terms of the GNU General Public License v2
|
|
||||||
|
|
||||||
EAPI=8
|
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=setuptools
|
|
||||||
PYTHON_COMPAT=( python3_{9..12} pypy3 )
|
|
||||||
|
|
||||||
inherit distutils-r1 pypi
|
|
||||||
|
|
||||||
DESCRIPTION="Python Documentation Utilities (reference reStructuredText impl.)"
|
|
||||||
HOMEPAGE="
|
|
||||||
https://docutils.sourceforge.io/
|
|
||||||
https://pypi.org/project/docutils/
|
|
||||||
"
|
|
||||||
|
|
||||||
LICENSE="BSD-2 GPL-3 public-domain"
|
|
||||||
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"
|
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
dev-python/pygments[${PYTHON_USEDEP}]
|
|
||||||
"
|
|
||||||
BDEPEND="
|
|
||||||
${RDEPEND}
|
|
||||||
"
|
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
"${FILESDIR}"/${PN}-0.19-pygments-2.14.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 \
|
|
||||||
--stylesheet-path=../html4css1.css, --traceback ../docs || die
|
|
||||||
}
|
|
||||||
|
|
||||||
src_test() {
|
|
||||||
cd test || 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,quicktest}.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)
|
|
||||||
}
|
|
@ -4,7 +4,7 @@
|
|||||||
EAPI=8
|
EAPI=8
|
||||||
|
|
||||||
DISTUTILS_USE_PEP517=flit
|
DISTUTILS_USE_PEP517=flit
|
||||||
PYTHON_COMPAT=( python3_{10..12} pypy3 )
|
PYTHON_COMPAT=( python3_{10..13} pypy3 )
|
||||||
|
|
||||||
inherit distutils-r1 optfeature pypi
|
inherit distutils-r1 optfeature pypi
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ HOMEPAGE="
|
|||||||
# GPL-3+ only for emacs/rst.el
|
# GPL-3+ only for emacs/rst.el
|
||||||
LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain"
|
LICENSE="BSD BSD-2 GPL-3+ PSF-2.4 public-domain"
|
||||||
SLOT="0"
|
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"
|
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="
|
RDEPEND="
|
||||||
dev-python/pillow[${PYTHON_USEDEP}]
|
dev-python/pillow[${PYTHON_USEDEP}]
|
||||||
@ -27,11 +27,6 @@ BDEPEND="
|
|||||||
${RDEPEND}
|
${RDEPEND}
|
||||||
"
|
"
|
||||||
|
|
||||||
PATCHES=(
|
|
||||||
# minimal backport of upstream r9637, r9641
|
|
||||||
"${FILESDIR}/${P}-test.patch"
|
|
||||||
)
|
|
||||||
|
|
||||||
python_compile_all() {
|
python_compile_all() {
|
||||||
# Generate html docs from reStructured text sources.
|
# Generate html docs from reStructured text sources.
|
||||||
|
|
||||||
@ -45,7 +40,6 @@ python_compile_all() {
|
|||||||
|
|
||||||
src_test() {
|
src_test() {
|
||||||
cd test || die
|
cd test || die
|
||||||
mkdir functional/output || die
|
|
||||||
distutils-r1_src_test
|
distutils-r1_src_test
|
||||||
}
|
}
|
||||||
|
|
@ -1,672 +0,0 @@
|
|||||||
https://bugs.gentoo.org/892213
|
|
||||||
https://sourceforge.net/p/docutils/patches/201/
|
|
||||||
--- a/test/test_parsers/test_rst/test_directives/test_code.py
|
|
||||||
+++ b/test/test_parsers/test_rst/test_directives/test_code.py
|
|
||||||
@@ -10,14 +10,20 @@ Test the 'code' directive in parsers/rst
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
import __init__ # noqa: F401
|
|
||||||
+from packaging.version import Version
|
|
||||||
from test_parsers import DocutilsTestSupport
|
|
||||||
-from docutils.utils.code_analyzer import with_pygments
|
|
||||||
+from docutils.utils.code_analyzer import with_pygments, pygments_version
|
|
||||||
|
|
||||||
|
|
||||||
def suite():
|
|
||||||
s = DocutilsTestSupport.ParserTestSuite()
|
|
||||||
if not with_pygments:
|
|
||||||
del(totest['code-parsing'])
|
|
||||||
+ del(totest['code-parsing-2-14'])
|
|
||||||
+ elif pygments_version >= Version('2.14.0'):
|
|
||||||
+ del(totest['code-parsing'])
|
|
||||||
+ else:
|
|
||||||
+ del(totest['code-parsing-2-14'])
|
|
||||||
s.generateTests(totest)
|
|
||||||
return s
|
|
||||||
|
|
||||||
@@ -170,6 +176,165 @@ totest['code-parsing'] = [
|
|
||||||
\n\
|
|
||||||
<inline classes="name builtin">
|
|
||||||
print
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ (
|
|
||||||
+ <inline classes="literal number integer">
|
|
||||||
+ 8
|
|
||||||
+ <inline classes="operator">
|
|
||||||
+ /
|
|
||||||
+ <inline classes="literal number integer">
|
|
||||||
+ 2
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ )
|
|
||||||
+"""],
|
|
||||||
+["""\
|
|
||||||
+.. code:: latex
|
|
||||||
+ :class: testclass
|
|
||||||
+
|
|
||||||
+ hello \\emph{world} % emphasize
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <literal_block classes="code latex testclass" xml:space="preserve">
|
|
||||||
+ hello \n\
|
|
||||||
+ <inline classes="keyword">
|
|
||||||
+ \\emph
|
|
||||||
+ <inline classes="name builtin">
|
|
||||||
+ {
|
|
||||||
+ world
|
|
||||||
+ <inline classes="name builtin">
|
|
||||||
+ }
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="comment">
|
|
||||||
+ % emphasize"""],
|
|
||||||
+["""\
|
|
||||||
+.. code:: rst
|
|
||||||
+ :number-lines:
|
|
||||||
+
|
|
||||||
+ This is a code block with text.
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <literal_block classes="code rst" xml:space="preserve">
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 1 \n\
|
|
||||||
+ This is a code block with text.
|
|
||||||
+"""],
|
|
||||||
+["""\
|
|
||||||
+Code not parsed but warning silenced in ParserTestCase.
|
|
||||||
+
|
|
||||||
+.. code:: s-lang
|
|
||||||
+
|
|
||||||
+ % abc.sl
|
|
||||||
+ autoload("abc_mode", "abc");
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Code not parsed but warning silenced in ParserTestCase.
|
|
||||||
+ <literal_block classes="code s-lang" xml:space="preserve">
|
|
||||||
+ % abc.sl
|
|
||||||
+ autoload("abc_mode", "abc");
|
|
||||||
+"""],
|
|
||||||
+["""\
|
|
||||||
+Place the language name in a class argument to avoid the no-lexer warning:
|
|
||||||
+
|
|
||||||
+.. code::
|
|
||||||
+ :class: s-lang
|
|
||||||
+
|
|
||||||
+ % abc.sl
|
|
||||||
+ autoload("abc_mode", "abc");
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Place the language name in a class argument to avoid the no-lexer warning:
|
|
||||||
+ <literal_block classes="code s-lang" xml:space="preserve">
|
|
||||||
+ % abc.sl
|
|
||||||
+ autoload("abc_mode", "abc");
|
|
||||||
+"""],
|
|
||||||
+]
|
|
||||||
+
|
|
||||||
+totest['code-parsing-2-14'] = [
|
|
||||||
+["""\
|
|
||||||
+.. code:: python3
|
|
||||||
+ :class: testclass
|
|
||||||
+
|
|
||||||
+ print('hello world') # to stdout
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <literal_block classes="code python3 testclass" xml:space="preserve">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name builtin">
|
|
||||||
+ print
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ (
|
|
||||||
+ <inline classes="literal string single">
|
|
||||||
+ 'hello world'
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ )
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="comment single">
|
|
||||||
+ # to stdout
|
|
||||||
+"""],
|
|
||||||
+["""\
|
|
||||||
+.. code:: python3
|
|
||||||
+ :class: testclass
|
|
||||||
+ :name: my_function
|
|
||||||
+ :number-lines: 7
|
|
||||||
+
|
|
||||||
+ def my_function():
|
|
||||||
+ '''Test the lexer.
|
|
||||||
+ '''
|
|
||||||
+
|
|
||||||
+ # and now for something completely different
|
|
||||||
+ print(8/2)
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <literal_block classes="code python3 testclass" ids="my-function" names="my_function" xml:space="preserve">
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 7 \n\
|
|
||||||
+ <inline classes="keyword">
|
|
||||||
+ def
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name function">
|
|
||||||
+ my_function
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ ():
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 8 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="literal string doc">
|
|
||||||
+ \'\'\'Test the lexer.
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 9 \n\
|
|
||||||
+ <inline classes="literal string doc">
|
|
||||||
+ \'\'\'
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 10 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 11 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="comment single">
|
|
||||||
+ # and now for something completely different
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 12 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name builtin">
|
|
||||||
+ print
|
|
||||||
<inline classes="punctuation">
|
|
||||||
(
|
|
||||||
<inline classes="literal number integer">
|
|
||||||
--- a/test/test_parsers/test_rst/test_directives/test_code_long.py
|
|
||||||
+++ b/test/test_parsers/test_rst/test_directives/test_code_long.py
|
|
||||||
@@ -10,15 +10,22 @@ Test the 'code' directive in body.py wit
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
import __init__ # noqa: F401
|
|
||||||
+from packaging.version import Version
|
|
||||||
from test_parsers import DocutilsTestSupport
|
|
||||||
-from docutils.utils.code_analyzer import with_pygments
|
|
||||||
+from docutils.utils.code_analyzer import with_pygments, pygments_version
|
|
||||||
|
|
||||||
|
|
||||||
def suite():
|
|
||||||
settings = {'syntax_highlight': 'long'}
|
|
||||||
s = DocutilsTestSupport.ParserTestSuite(suite_settings=settings)
|
|
||||||
if with_pygments:
|
|
||||||
+ if pygments_version >= Version('2.14.0'):
|
|
||||||
+ del(totest['code-parsing-long'])
|
|
||||||
+ else:
|
|
||||||
+ del(totest['code-parsing-long-2-14'])
|
|
||||||
+
|
|
||||||
s.generateTests(totest)
|
|
||||||
+
|
|
||||||
return s
|
|
||||||
|
|
||||||
|
|
||||||
@@ -73,6 +80,94 @@ totest['code-parsing-long'] = [
|
|
||||||
\n\
|
|
||||||
<inline classes="name builtin">
|
|
||||||
print
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ (
|
|
||||||
+ <inline classes="literal number integer">
|
|
||||||
+ 8
|
|
||||||
+ <inline classes="operator">
|
|
||||||
+ /
|
|
||||||
+ <inline classes="literal number integer">
|
|
||||||
+ 2
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ )
|
|
||||||
+"""],
|
|
||||||
+["""\
|
|
||||||
+.. code:: latex
|
|
||||||
+
|
|
||||||
+ hello \\emph{world} % emphasize
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <literal_block classes="code latex" xml:space="preserve">
|
|
||||||
+ hello \n\
|
|
||||||
+ <inline classes="keyword">
|
|
||||||
+ \\emph
|
|
||||||
+ <inline classes="name builtin">
|
|
||||||
+ {
|
|
||||||
+ world
|
|
||||||
+ <inline classes="name builtin">
|
|
||||||
+ }
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="comment">
|
|
||||||
+ % emphasize"""],
|
|
||||||
+]
|
|
||||||
+
|
|
||||||
+totest['code-parsing-long-2-14'] = [
|
|
||||||
+["""\
|
|
||||||
+.. code:: python3
|
|
||||||
+ :number-lines: 7
|
|
||||||
+
|
|
||||||
+ def my_function():
|
|
||||||
+ '''Test the lexer.
|
|
||||||
+ '''
|
|
||||||
+
|
|
||||||
+ # and now for something completely different
|
|
||||||
+ print(8/2)
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <literal_block classes="code python3" xml:space="preserve">
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 7 \n\
|
|
||||||
+ <inline classes="keyword">
|
|
||||||
+ def
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name function">
|
|
||||||
+ my_function
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ ():
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 8 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="literal string doc">
|
|
||||||
+ \'\'\'Test the lexer.
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 9 \n\
|
|
||||||
+ <inline classes="literal string doc">
|
|
||||||
+ \'\'\'
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 10 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 11 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="comment single">
|
|
||||||
+ # and now for something completely different
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 12 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name builtin">
|
|
||||||
+ print
|
|
||||||
<inline classes="punctuation">
|
|
||||||
(
|
|
||||||
<inline classes="literal number integer">
|
|
||||||
--- a/test/test_parsers/test_rst/test_directives/test_include.py
|
|
||||||
+++ b/test/test_parsers/test_rst/test_directives/test_include.py
|
|
||||||
@@ -10,9 +10,10 @@ Tests for misc.py "include" directive.
|
|
||||||
import os.path
|
|
||||||
if __name__ == '__main__':
|
|
||||||
import __init__ # noqa: F401
|
|
||||||
+from packaging.version import Version
|
|
||||||
from test_parsers import DocutilsTestSupport
|
|
||||||
from docutils import parsers
|
|
||||||
-from docutils.utils.code_analyzer import with_pygments
|
|
||||||
+from docutils.utils.code_analyzer import with_pygments, pygments_version
|
|
||||||
|
|
||||||
# optional 3rd-party markdown parser
|
|
||||||
md_parser_name = 'recommonmark'
|
|
||||||
@@ -27,6 +28,11 @@ def suite():
|
|
||||||
# eventually skip optional parts:
|
|
||||||
if not with_pygments:
|
|
||||||
del(totest['include-code'])
|
|
||||||
+ del(totest['include-code-2-14'])
|
|
||||||
+ elif pygments_version >= Version('2.14.0'):
|
|
||||||
+ del(totest['include-code'])
|
|
||||||
+ else:
|
|
||||||
+ del(totest['include-code-2-14'])
|
|
||||||
if not md_parser_class:
|
|
||||||
del(totest['include-markdown'])
|
|
||||||
s.generateTests(totest)
|
|
||||||
@@ -1191,6 +1197,313 @@ Including includes/include14.txt
|
|
||||||
<inline classes="punctuation">
|
|
||||||
..
|
|
||||||
\n\
|
|
||||||
+ <inline classes="operator word">
|
|
||||||
+ include
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ ::
|
|
||||||
+ ../sibling/include7.txt
|
|
||||||
+""" % reldir(include6)],
|
|
||||||
+["""\
|
|
||||||
+Circular inclusion
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+""" % include15,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Circular inclusion
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include15.txt": example of rekursive inclusion.
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include16.txt": example of rekursive inclusion.
|
|
||||||
+ <system_message level="2" line="3" source="%s" type="WARNING">
|
|
||||||
+ <paragraph>
|
|
||||||
+ circular inclusion in "include" directive:
|
|
||||||
+ %s
|
|
||||||
+ > %s
|
|
||||||
+ > %s
|
|
||||||
+ > test data
|
|
||||||
+ <literal_block xml:space="preserve">
|
|
||||||
+ .. include:: include15.txt
|
|
||||||
+ <paragraph>
|
|
||||||
+ No loop when clipping before the "include" directive:
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include15.txt": example of rekursive inclusion.
|
|
||||||
+""" % (reldir(include16), reldir(include15),
|
|
||||||
+ reldir(include16), reldir(include15))],
|
|
||||||
+["""\
|
|
||||||
+Circular inclusion with clipping.
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+ :start-line: 2
|
|
||||||
+""" % include16,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Circular inclusion with clipping.
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include15.txt": example of rekursive inclusion.
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include16.txt": example of rekursive inclusion.
|
|
||||||
+ <system_message level="2" line="3" source="%s" type="WARNING">
|
|
||||||
+ <paragraph>
|
|
||||||
+ circular inclusion in "include" directive:
|
|
||||||
+ %s
|
|
||||||
+ > %s
|
|
||||||
+ > %s
|
|
||||||
+ > %s
|
|
||||||
+ > test data
|
|
||||||
+ <literal_block xml:space="preserve">
|
|
||||||
+ .. include:: include15.txt
|
|
||||||
+ <paragraph>
|
|
||||||
+ No loop when clipping before the "include" directive:
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include15.txt": example of rekursive inclusion.
|
|
||||||
+ <paragraph>
|
|
||||||
+ No loop when clipping before the "include" directive:
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include15.txt": example of rekursive inclusion.
|
|
||||||
+""" % (reldir(include16), reldir(include15), reldir(include16),
|
|
||||||
+ reldir(include15), reldir(include16))],
|
|
||||||
+["""\
|
|
||||||
+Circular inclusion with specified parser.
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+ :parser: rst
|
|
||||||
+""" % include15,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Circular inclusion with specified parser.
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include15.txt": example of rekursive inclusion.
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include16.txt": example of rekursive inclusion.
|
|
||||||
+ <system_message level="2" line="3" source="%s" type="WARNING">
|
|
||||||
+ <paragraph>
|
|
||||||
+ circular inclusion in "include" directive:
|
|
||||||
+ %s
|
|
||||||
+ > %s
|
|
||||||
+ > %s
|
|
||||||
+ > test data
|
|
||||||
+ <literal_block xml:space="preserve">
|
|
||||||
+ .. include:: include15.txt
|
|
||||||
+ <paragraph>
|
|
||||||
+ No loop when clipping before the "include" directive:
|
|
||||||
+ <paragraph>
|
|
||||||
+ File "include15.txt": example of rekursive inclusion.
|
|
||||||
+""" % (reldir(include16), reldir(include15),
|
|
||||||
+ reldir(include16), reldir(include15))],
|
|
||||||
+["""\
|
|
||||||
+No circular inclusion.
|
|
||||||
+
|
|
||||||
+============================= =============================
|
|
||||||
+.. include:: data/include.txt .. include:: data/include.txt
|
|
||||||
+============================= =============================
|
|
||||||
+""",
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ No circular inclusion.
|
|
||||||
+ <table>
|
|
||||||
+ <tgroup cols="2">
|
|
||||||
+ <colspec colwidth="29">
|
|
||||||
+ <colspec colwidth="29">
|
|
||||||
+ <tbody>
|
|
||||||
+ <row>
|
|
||||||
+ <entry>
|
|
||||||
+ <paragraph>
|
|
||||||
+ Some include text.
|
|
||||||
+ <entry>
|
|
||||||
+ <paragraph>
|
|
||||||
+ Some include text."""],
|
|
||||||
+]
|
|
||||||
+
|
|
||||||
+totest['include-code-2-14'] = [
|
|
||||||
+["""\
|
|
||||||
+Included code
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+ :code: rst
|
|
||||||
+""" % include1,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Included code
|
|
||||||
+ <literal_block classes="code rst" source="%s" xml:space="preserve">
|
|
||||||
+ <inline classes="generic heading">
|
|
||||||
+ Inclusion 1
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="generic heading">
|
|
||||||
+ -----------
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ This file is used by \n\
|
|
||||||
+ <inline classes="literal string">
|
|
||||||
+ ``test_include.py``
|
|
||||||
+ .
|
|
||||||
+""" % reldir(include1)],
|
|
||||||
+["""\
|
|
||||||
+Included code
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+ :code: rst
|
|
||||||
+ :number-lines:
|
|
||||||
+""" % include1,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Included code
|
|
||||||
+ <literal_block classes="code rst" source="%s" xml:space="preserve">
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 1 \n\
|
|
||||||
+ <inline classes="generic heading">
|
|
||||||
+ Inclusion 1
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 2 \n\
|
|
||||||
+ <inline classes="generic heading">
|
|
||||||
+ -----------
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 3 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="ln">
|
|
||||||
+ 4 \n\
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ This file is used by \n\
|
|
||||||
+ <inline classes="literal string">
|
|
||||||
+ ``test_include.py``
|
|
||||||
+ .
|
|
||||||
+""" % reldir(include1)],
|
|
||||||
+["""\
|
|
||||||
+TAB expansion with included code:
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+ :code: rst
|
|
||||||
+""" % include_literal,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ TAB expansion with included code:
|
|
||||||
+ <literal_block classes="code rst" source="%s" xml:space="preserve">
|
|
||||||
+ Literal included this should \n\
|
|
||||||
+ <inline classes="generic strong">
|
|
||||||
+ **not**
|
|
||||||
+ be \n\
|
|
||||||
+ <inline classes="generic emph">
|
|
||||||
+ *marked*
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name variable">
|
|
||||||
+ `up`
|
|
||||||
+ .
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <- leading raw tab.
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ \n\
|
|
||||||
+ Newlines
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ are
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ normalized.
|
|
||||||
+""" % include_literal],
|
|
||||||
+["""\
|
|
||||||
+Custom TAB expansion with included code:
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+ :code: rst
|
|
||||||
+ :tab-width: 2
|
|
||||||
+""" % include_literal,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Custom TAB expansion with included code:
|
|
||||||
+ <literal_block classes="code rst" source="%s" xml:space="preserve">
|
|
||||||
+ Literal included this should \n\
|
|
||||||
+ <inline classes="generic strong">
|
|
||||||
+ **not**
|
|
||||||
+ be \n\
|
|
||||||
+ <inline classes="generic emph">
|
|
||||||
+ *marked*
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name variable">
|
|
||||||
+ `up`
|
|
||||||
+ .
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ <- leading raw tab.
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ \n\
|
|
||||||
+ Newlines
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ are
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ normalized.
|
|
||||||
+""" % include_literal],
|
|
||||||
+["""\
|
|
||||||
+Custom TAB expansion with included code:
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+ :code: rst
|
|
||||||
+ :tab-width: -1
|
|
||||||
+""" % include_literal,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Custom TAB expansion with included code:
|
|
||||||
+ <literal_block classes="code rst" source="%s" xml:space="preserve">
|
|
||||||
+ Literal included this should \n\
|
|
||||||
+ <inline classes="generic strong">
|
|
||||||
+ **not**
|
|
||||||
+ be \n\
|
|
||||||
+ <inline classes="generic emph">
|
|
||||||
+ *marked*
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="name variable">
|
|
||||||
+ `up`
|
|
||||||
+ .
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ \t<- leading raw tab.
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ \n\
|
|
||||||
+ Newlines
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ are
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ normalized.
|
|
||||||
+""" % include_literal],
|
|
||||||
+["""\
|
|
||||||
+Including includes/include14.txt
|
|
||||||
+
|
|
||||||
+.. include:: %s
|
|
||||||
+""" % include14,
|
|
||||||
+"""\
|
|
||||||
+<document source="test data">
|
|
||||||
+ <paragraph>
|
|
||||||
+ Including includes/include14.txt
|
|
||||||
+ <paragraph>
|
|
||||||
+ Including more/include6.txt as rst-code from includes/include14.txt:
|
|
||||||
+ <literal_block classes="code rst" source="%s" xml:space="preserve">
|
|
||||||
+ In includes/more/include6.txt
|
|
||||||
+ <inline classes="whitespace">
|
|
||||||
+ \n\
|
|
||||||
+ \n\
|
|
||||||
+ <inline classes="punctuation">
|
|
||||||
+ ..
|
|
||||||
+ \n\
|
|
||||||
<inline classes="operator word">
|
|
||||||
include
|
|
||||||
<inline classes="punctuation">
|
|
||||||
--- a/docutils/utils/code_analyzer.py
|
|
||||||
+++ b/docutils/utils/code_analyzer.py
|
|
||||||
@@ -9,11 +9,14 @@
|
|
||||||
from docutils import ApplicationError
|
|
||||||
try:
|
|
||||||
import pygments
|
|
||||||
+ from packaging.version import Version
|
|
||||||
from pygments.lexers import get_lexer_by_name
|
|
||||||
from pygments.formatters.html import _get_ttype_class
|
|
||||||
with_pygments = True
|
|
||||||
+ pygments_version = Version(pygments.__version__)
|
|
||||||
except ImportError:
|
|
||||||
with_pygments = False
|
|
||||||
+ pygments_version = '0'
|
|
||||||
|
|
||||||
# Filter the following token types from the list of class arguments:
|
|
||||||
unstyled_tokens = ['token', # Token (base token type)
|
|
||||||
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
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"><string></span>, line 1)</p>
|
|
||||||
<p>Cannot scale image!
|
|
||||||
Could not get size from "dummy.png":
|
|
||||||
- [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 \
|
|
Loading…
x
Reference in New Issue
Block a user