diff options
Diffstat (limited to 'dev-python/docutils')
-rw-r--r-- | dev-python/docutils/Manifest | 3 | ||||
-rw-r--r-- | dev-python/docutils/docutils-0.19.ebuild | 4 | ||||
-rw-r--r-- | dev-python/docutils/files/docutils-0.19-pygments-2.14.patch | 672 |
3 files changed, 678 insertions, 1 deletions
diff --git a/dev-python/docutils/Manifest b/dev-python/docutils/Manifest index acc4e4d581bc..eb46ff3b6b94 100644 --- a/dev-python/docutils/Manifest +++ b/dev-python/docutils/Manifest @@ -1,6 +1,7 @@ AUX docutils-0.18.1-py311.patch 4637 BLAKE2B d103e5f4fa6b8c1ab06f2b07c33ee3f707f0c1224d9bfa6f57504c3f30177dcb46cb8ed32dcc03c413937a94212bc64a9963cc0cede766e50b81b1f73531fcef SHA512 7c7c97e150914ddc12948236f84314b3ce49d043a7e5245ae0defbbf1d0845a8e3b06ebd63fb466c92bc970305578243dc97103230d80a810fa3cd54528b70bd +AUX docutils-0.19-pygments-2.14.patch 18917 BLAKE2B 889de063bfd6aae39512103c0da0d9e6bec108a59b9687ed1d2cfa650b541726bf215651dae8566e73c5c7beaff3911ba477a198640161ff1ee20d8cc49ffa27 SHA512 94941801590739dd760c5a5344481f99cf57c38776fc335643c7734f77a8c70e7408228149e3488a1b93f47ec57c54a419cf23cb3b2649b8246e0f8fc2e420e2 DIST docutils-0.17.1.tar.gz 2016138 BLAKE2B aa0b6525ba2e3eaebc17010806952ed5f40919876fcb813f50cc05b628dfd22e6073a9a4b2bfe989089ae68d9b7111ae3a97dda2bde5c0536f8fb76c0942fe29 SHA512 5ec2087116bd5356fdffc54f07f6b0355aac5fa9d6caeefa77e8d201fd4706c0d419193c4d9a3964ae493da3091fe2c7dc36b74f81a1e1b9282173658b06e71b DIST docutils-0.19.tar.gz 2056383 BLAKE2B 9983a905642de4e81ca118578671b503ddfda4bef1afcc0524de40543e1f9617fd8d768ef467da49d2f01076683400bad6a0fe15f6b5a3a1e202c42b2e34ab1b SHA512 fb904a899f2b6f3c07c5079577bd7c52a3182cb85f6a4149391e523498df15bfa317f0c04095b890beeb3f89c2b444875a2a609d880ac4d7fbc3125e46b37ea5 EBUILD docutils-0.17.1-r1.ebuild 1830 BLAKE2B f191faf057fe93ec9808f7663c1a2bcd8e3449684fa5acbcb6e512e59b1a9d6c84e15c777edc423e748ccd3bf302f553e9597c0dfcf3423e7c3a7217eb7b1305 SHA512 79c67c627451c5ec7c72176c94d5bd7ba11025bc65df2368876eb8d6af1a48556cdfe2b9ea36c8341e5b704964616c391a2ba2379eb5e37bd9abb45ecdd53286 -EBUILD docutils-0.19.ebuild 1774 BLAKE2B 581275fc7a8d7955411986518f7b0263345b553d2e2541cdaacc96ded981c3e240a84184bf8dc9dd7970e0a6c75c0c14db551300bea8a2d2e9cd917079d8ad4c SHA512 01614fb7ad56b158841ae1abae65e3180bd612dc009c4356ab87b726e8e8efcc7598f7eceeb0523e2d94b7c896fa64208f5758daf09467cde8892b64b6b2a8c5 +EBUILD docutils-0.19.ebuild 1833 BLAKE2B 9c4d294188da635bb490e98b0d221dfe37a85a6d1232cdc896cd68bfb9b24b092f8e274f22125190638082249b252601de468726bf24a75304195cc7867069ef SHA512 06b6deeec4a930d5f9cf62234a632eef85a4a85b28c63a7de745d9a5fda941a82419362cc315b0880e9c15be9a13f5a670c81094e67d468eba4e236df7bf5356 MISC metadata.xml 389 BLAKE2B b586fccb92f88e7f2ee68879bb919298953da9eb629fc1042f5f35b316b59ffcc614f23135fe1ab4af8ba9646bcbc33f194ac74af795094e20d288817b5e227b SHA512 ac8975a27694a2a0efd07c944a769f1a210bbf4a1550f92f0ead3ac2dc9ffb4d82206858f2a8631f751c81fdace88433b9d89f8c3d6af72907e102da5696693f diff --git a/dev-python/docutils/docutils-0.19.ebuild b/dev-python/docutils/docutils-0.19.ebuild index 0a5fd76f32d2..b97ed0c05eff 100644 --- a/dev-python/docutils/docutils-0.19.ebuild +++ b/dev-python/docutils/docutils-0.19.ebuild @@ -26,6 +26,10 @@ BDEPEND=" ${RDEPEND} " +PATCHES=( + "${FILESDIR}"/${PN}-0.19-pygments-2.14.patch +) + python_compile_all() { # Generate html docs from reStructured text sources. diff --git a/dev-python/docutils/files/docutils-0.19-pygments-2.14.patch b/dev-python/docutils/files/docutils-0.19-pygments-2.14.patch new file mode 100644 index 000000000000..42324aa49c4d --- /dev/null +++ b/dev-python/docutils/files/docutils-0.19-pygments-2.14.patch @@ -0,0 +1,672 @@ +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) + + |