Sync from SUSE:SLFO:Main python-docutils revision 845d8e9b968daeefc1607722e75854ab

This commit is contained in:
Adrian Schröter 2024-05-03 20:31:46 +02:00
commit a6ef9293b1
7 changed files with 1567 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>test</package>
</multibuild>

BIN
docutils-0.19.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

676
pygments-2.14.patch Normal file
View File

@ -0,0 +1,676 @@
Index: docutils-0.19/test/test_parsers/test_rst/test_directives/test_code.py
===================================================================
--- docutils-0.19.orig/test/test_parsers/test_rst/test_directives/test_code.py
+++ docutils-0.19/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">
Index: docutils-0.19/test/test_parsers/test_rst/test_directives/test_code_long.py
===================================================================
--- docutils-0.19.orig/test/test_parsers/test_rst/test_directives/test_code_long.py
+++ docutils-0.19/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">
Index: docutils-0.19/test/test_parsers/test_rst/test_directives/test_include.py
===================================================================
--- docutils-0.19.orig/test/test_parsers/test_rst/test_directives/test_include.py
+++ docutils-0.19/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">
Index: docutils-0.19/docutils/utils/code_analyzer.py
===================================================================
--- docutils-0.19.orig/docutils/utils/code_analyzer.py
+++ docutils-0.19/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)

View File

@ -0,0 +1 @@
# these can't be helped

726
python-docutils.changes Normal file
View File

@ -0,0 +1,726 @@
-------------------------------------------------------------------
Fri Apr 21 12:24:23 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add sle15_python_module_pythons (jsc#PED-68)
-------------------------------------------------------------------
Sun Apr 16 01:30:00 UTC 2023 - Matej Cepl <mcepl@suse.com>
- Update single spec from Factory
-------------------------------------------------------------------
Tue Jan 24 07:15:02 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
- Refactor pygments-2.14.patch to not use distutils.
-------------------------------------------------------------------
Tue Jan 10 15:42:55 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
- Delete sphix-6.0.0.patch
- Add pygments-2.14.patch
- The patch is related to pygments not Sphinx and the patch is updated to make
it conditional so it work with older versions of pygments, shp#docutils#201
-------------------------------------------------------------------
Wed Jan 4 13:09:13 UTC 2023 - Daniel Garcia <daniel.garcia@suse.com>
- Add sphinx-6.0.0.patch to fix tests for new version of sphinx.
-------------------------------------------------------------------
Wed Nov 2 12:32:50 UTC 2022 - Matej Cepl <mcepl@suse.com>
- Release 0.19 (2022-07-05)
- General
- Dropped support for Python 2.7, 3.5, and 3.6. and removed
compatibility hacks from code and tests.
- Code cleanup, check PEP 8 conformity with flake8
(exceptions in file tox.ini).
- New module. Support for python -m docutils. Also used for
the docutils console script entry point.
- Let Publisher.publish() print info and prompt
when waiting for input from a terminal (cf.
https://clig.dev/#interactivity).
- Respect "input_encoding_error_handler" setting when opening
a source.
- New function error_string() obsoletes
utils.error_reporting.ErrorString.
- Class ErrorOutput moved here from utils/error_reporting.
- Use "utf-8-sig" instead of Python's default encoding if the
"input_encoding" setting is None.
- Fix error when reading of UTF-16 encoded source without
trailing newline.
- Aliases "markdown" and "commonmark" point to
"commonmark_wrapper".
- Alias for the "myst" parser
(https://pypi.org/project/myst-docutils).
- Use absolute module names in _parser_aliases instead
of two import attempts. (Keeps details if the
recommonmark_wrapper.py module raises an ImportError.)
- Prepend parser name to ImportError if importing a parser
class fails.
- New module for parsing CommonMark input. Selects a
locally installed 3rd-party parser (pycmark, myst, or
recommonmark).
- Raise ImportError, if import of the upstream parser
module fails. If called from an "include" directive, the
system-message now has source/line info.
- Adapt to and test with "recommonmark" versions 0.6.0 and
0.7.1.
- Update PEP base URL (fixes bug #445), use "https:" scheme
in RFC base URL.
- Add reporter to Directive class attributes.
- parser_name() keeps details if converting ImportError to
ValueError.
- Don't use mutable default values for function
arguments. Fixes bug #430.
- Fix bug #435: invalid references in problematic nodes with
report_level=4.
- decode_path() returns str instance instead of
nodes.reprunicode.
- Add deprecation warning.
- Add "html writers" to config_section_dependencies. Fixes
bug #443.
- Write table column widths with 3 digits precision. Fixes
bug #444.
- Add space before "charset" meta tag closing sequence.
- Remove class value "controls" from an image node with video
content after converting it to a "control" attribute of the
<video> tag.
- Wrap groups of footnotes in an <aside> for easier styling.
- Use "https:" scheme in "python_home" URL default.
- Fix links in template.txt.
- New "docutils" console script entry point. Fixes bug #447.
- Always encode the log file "alltests.out" using 'utf-8'.
- exception_data() now returns None if no exception was
raised.
- recommonmark_wrapper only imported if upstream parser is
present.
- Fix bug #436: Null char valid in CSV since Python 3.11.
- Allow 3rd-party drop-in components for reader and parser,
too.
- Fix help output.
- Actual code moved to docutils.__main__.py.
- Options -h and --help print short usage message.
- Release 0.18.1 (2021-11-23)
- Node.traverse() returns a list again to restore backwards
compatibility. Fixes bug #431.
- New method Node.findall(): like Node.traverse() but returns
an iterator. Obsoletes Node.traverse().
- Fix behaviour of get_stylesheet_list(): do not look up
stylesheets given as "stylesheet" setting. Cf. bug #434.
- Fix handling of footnote_backlinks==False (report Alan G
Isaac).
- Fix typo (bug #432).
- Fix spurious output with Windows (bug #350).
- Fix a false positive (bug #434).
- Release 0.18 (2021-10-26)
- mark as provisional (will switch from using "optparse" to
"argparse").
- remove hack for the now obsolete "mod_python" Apache
module.
- new function get_default_settings()
- Don't change a list while looping over it (in
document.set_name_id_map()). Thanks to Mickey Endito.
- Test and update to work with recommonmark version
0.6.0. Still provisional.
- Unfortunately, recommonmark is no longer maintained.
- Fix bug #424 Wrong circular inclusion detection. Use a
"magic" comment instead of line numbers to keep a log of
recursive inclusions.
- Use a "magic" comment to update the log of recursive
inclusions.
- New option `image_loading`_. Support "lazy" loading of
images. Obsoletes "embed_images".
- Fix spelling of option "detailed".
- Read settings from standard configuration files.
- Release 0.18b1 (2021-10-05)
- The default value for the "auto_id_prefix" setting changed to
"%": auto-generated IDs use the tag name as prefix.
- Make meta a standard Docutils doctree node. Writers may
ignore "meta" nodes if they are not supported by the output
format.
- document.make_id(): Do not strip leading number and hyphen
characters from name if the id_prefix setting is non-empty.
- Node.traverse() returns an iterator instead of a list.
- Removed. (Meta directive moved to misc.py.)
- Meta directive class (moved from html.py) inserts meta
(instead of pending) nodes.
- Add class option to Raw directive.
- Unify behaviour of "widths" option: check that the length of
an integer list equals the number of table columns also for
the "table" directive.
- Fork from elyxer and remove code that is not required for
math conversion.
- Scale variable sized operators and big delimiters with CSS
- Support more commands, fix mapping of commands to Unicode
characters (cf. LaTeX syntax for mathematics).
- Fix bug #244 Wrong subscript/superscript order.
- Don't use <tt> element (deprecated in HTML5).
- Use STIX fonts if available.
- Fix source location (line number) for attribution
elements. Patch by Mickey Endito.
- Add line, source, and rawsource internal attributes for
blockquote elements. Patch by Mickey Endito.
- Skip system_messages when propagating targets. Fixes bug
#425.
- Removed unique_combinations() (obsoleted by
itertools.combinations()).
- Major update (fixes and support for additional commands and
symbols). Fixes bug #407.
- Write footnote brackets and field term colons to HTML, so
that they are present also without CSS and when copying
text. Adapt minimal.css.
- Use semantic tags <aside> for footnote text, topics,
admonitions, and system-messages and <nav> for the table of
contents. Use <div> for citations.
- Only specify table column widths, if the "widths" option
is set and is not "auto" (fixes bug #426). The table_style
setting "colwidths-grid" restores the current default.
- Use ARIA roles to enable accessible HTML for abstract,
dedication, the table of contents, footnote, references,
footnotes, citations, and backlinks.
- Use "aria-level" attribute instead of invalid tags <h7>,
<h8>, ... for headings of deeply nested sections.
- Do not set classes "compound-first", "compound-middle",
or "compound-last" to elements nested in a compound. Use
class value "backrefs" instead of "fn-backref" for a span of
back-references.
- Do not write class values handled by the HTML writer
("colwidths-auto", "colwidths-given", "colwidths-grid") to
the output.
- Move space character between section number and heading into
"sectnum" span.
- Removed attribute HTMLTranslator.topic_classes
- Items of a definition list with class argument "details" are
converted to details disclosure elements.
- Overwrite methods in _html_base.HTMLTranslator that use
HTML5 tags (details, aside, nav, ...) and attributes (role,
aria-level).
- The setting legacy_class_functions now defaults to
"False". Adapt stylesheets modifying \DUadmonition and/or
\DUtitle.
- Apply patch #181 "Fix tocdepth when chapter/part in use" by
John Thorvald Wodder II.
- Fix newlines after/before ids_to_labels() (cf. patch #183).
- Refactor/revise ToC writing.
- Don't add \phantomsection to labels in math-blocks.
- Improve spacing and allow customization of Docutils-generated
table of contents.
- New algorithm for table column widths. Fixes bug #422. New
configuration setting legacy_column_widths.
- Table.set_table_style() arguments changed.
- Only write "continued on next page..." if it fits without
making the table columns wider.
- Table width option overrides conflicting "auto" column
widths.
- Fix excessive padding above sidebar titles.
- Fix option "detailed" under Python 2.7.
- Remove IE 6 compatibility workarounds iepngfix.htc and
blank.gif (fixes bug #169).
- Fix: double quotes need to be escaped on macro
invocation. Done everywhere.
-------------------------------------------------------------------
Sat Oct 16 21:09:06 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 0.17.1:
* Fix bug #406 (MathML translation of ``\mathbf``).
* Open "docutils.sty" with encoding set to "utf8".
* Provide fallbacks for parser config settings
to facilitate programmatic use.
* Installing with ``setup.py`` now requires ``setuptools``.
Alternatively, install with `pip`_ (or "manually").
* Use importlib.import_module() to programmatically import modules.
* Fix bug #385: Import of language modules.
* Arabic mappings by Shahin.
* Fixes in Korean translation by Shinjo Park.
* Fix error when copying `system_message` node
* Make the sidebar's "title" argument optional
* Make "meta" elements available for "latex" and "odt".
* Prevent infinite inclusion loops.
* Move non-essential styling to ``plain.css``.
* Support "captionbelow" class value for tables.
* Display code line numbers as pseudo-elements which are skipped
when copying text from code blocks. Solves feature request #32.
* Support numbered figures.
* New optional style that adapts to different screen sizes.
* Fix #394 fix missing new line after rubric.
* Patch #168 fix crashing on empty citation (by Takeshi KOMIYA).
* Fix #126 manpage title with spaces.
* Fix #380 commandline option problem in sphinx.
* Fix/improve metadata handling:
fix "keyword" splitting,
allow generic fields (stored as "Custom Properties").
__ docs/user/config.html#detailled
* Run python3 test like python2 against source not the build/-directory
* New generic command line front end that allows the free selection of
reader, parser, and writer components.
- remove pygments25.patch (upstream)
-------------------------------------------------------------------
Sat Dec 12 00:33:13 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- In a world with more than one python 3 flavor, provide "docutils"
with the default python3 provider.
gh#openSUSE/python-rpm-macros#66
-------------------------------------------------------------------
Tue Apr 7 09:31:55 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Fix the condition to really generate the direct binaries
-------------------------------------------------------------------
Mon Apr 6 15:57:17 UTC 2020 - Matej Cepl <mcepl@suse.com>
- Remove %python3_only and use full alternatives.
-------------------------------------------------------------------
Sat Mar 14 09:56:02 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Add patch to fix build with pygments 2.4 and newer:
* pygments25.patch
-------------------------------------------------------------------
Wed Jan 15 10:56:28 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
- Update to 0.16:
- Dropped support for Python 2.6, 3.3 and 3.4
- Docutils now supports Python 2.7 and Python 3.5+ natively
(without conversion by ``2to3``).
- Keep `backslash escapes`__ in the document tree. Backslash characters in
text are be represented by NULL characters in the ``text`` attribute of
Doctree nodes and removed in the writing stage by the node's
``astext()`` method.
- Remove merged patch fix_tests_38.patch
-------------------------------------------------------------------
Fri Oct 11 14:11:49 CEST 2019 - Matej Cepl <mcepl@suse.com>
- Add fix_tests_38.patch to overcome failing
test_writers.test_odt.DocutilsOdtTestCase with Python 3.8.
Also, failed as shp#docutils#161.
-------------------------------------------------------------------
Sat Sep 14 01:50:36 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
- Skip the tests for the flavors not being built
-------------------------------------------------------------------
Fri Aug 9 09:53:07 UTC 2019 - Marketa Calabkova <mcalabkova@suse.com>
- update to version 0.15.2
* Docutils 0.14.x is the last version supporting Python 2.4, 2.5,
3.1, and 3.2.
* reStructured text: Allow embedded colons in field list field
names (before, tokens like :this:example: were considered ordinary text).
* Fixed a bug with the "trim" options of the "unicode" directive.
-------------------------------------------------------------------
Mon May 13 23:48:57 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Add multibuild in order to avoid buildcycle with Pillow and friends
-------------------------------------------------------------------
Tue May 7 15:03:33 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
- Add optional build dependencies Pillow, Pygments and roman,
causing 16 additonal test methods to run
- Add Recommends for Pillow, Pygments and roman
- Use %license
- Simplify test invocation
-------------------------------------------------------------------
Wed Jan 9 22:14:42 UTC 2019 - Matej Cepl <mcepl@suse.com>
- Remove unnecessary node BR
-------------------------------------------------------------------
Tue Dec 4 12:47:27 UTC 2018 - Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
-------------------------------------------------------------------
Fri Nov 10 22:54:38 UTC 2017 - arun@gmx.de
- specfile:
* add binary rst2html4
- update to version 0.14:
* Enable validation of Docutils XML documents against the DTD:
Use attribute type NMTOKEN instead of REFID for the `refid` attribute
and NMTOKENS for `backrefs`: REFID refers to an ID type instance,
however, the `ids` attribute cannot use the ID type because `XML only
allows one ID per Element Type`__ and doesn't support a multiple-ID
"IDS" attribute type.
* Added documentation for escaped whitespace in URI contexts.
* Clarify use of Unicode character categories.
* Added functionality: escaped whitespace in URI contexts.
* Consistent handling of all whitespace characters in inline markup
recognition. Fixes [ 307 ] and [ 3402314 ] (now [ 173 ]).
* Added support for escaped whitespace in URI contexts.
* Rework patch [ 120 ] (revert change to "Table.get_column_widths()"
that led to problems in an application with a custom table
directive).
* Fix [ 320 ] Russian docinfo fields not recognized.
* Don't add a second ID to problematic references.
* Fix SmartQuotes: warn only once if language is unsupported, keep
"rawsource" when "educating" quotes.
* Added "split_escaped_whitespace" function, support for escaped
whitespace in URI contexts.
* Fix [ 321 ] Import block might cause name error.
* Update quote definitions for languages et, fi, fr, ro, sv, tr, uk.
* New quote definitions for hr, hsb, hu, lv, sh, sl, sr.
* Fix [ 313 ] Differentiate apostrophe from closing single quote (if
possible).
* Fix [ 317 ] Extra space inserted with French smartquotes.
* Add command line interface for stand-alone use (requires 2.7).
* Provide default title in metadata (required by HTML5).
* Fix [ 312 ] HTML writer generates invalid HTML if the table has
two tags.
* Fix [ 319 ] The MathJax CDN shut down on April 30, 2017. For
security reasons, we don't use a third party public installation as default but
warn if math-output_ is set to MathJax without specifying a URL.
* Apply [ 125 ] HTML writer: respect automatic table column sizing.
* Handle class arguments for block-level elements by wrapping them
in a "DUclass" environment. This replaces the special handling for
"epigraph" and "topic" elements.
* Apply [ 141 ] Handling inline in manpage writer.
* Command setting "language" now sets the default language of the
generated ODF document.
* The use of image directive options :width: (%), :scale:, etc now
set the width/height/size of images in the generated ODF
documents.
* The heading/title of admonitions now reflects the language
specified by the "language" setting.
* Fixed [ 306 ] only first of multiple "image" directives with the
same URL shown in output.
* Fixed [ 282 ] python3: AttributeError.
* tools/rst2html4.py: New front-end.
* tools/dev/generate_punctuation_chars.py: New skript to test and
update utils.punctuation_chars.
-------------------------------------------------------------------
Tue Jun 6 13:31:03 UTC 2017 - jmatejek@suse.com
- only emit rst2html5 alternatives for python 3
- switch the "docutils" provides to the python 3 package (all the comands live there)
(this fixes bsc#1039394)
-------------------------------------------------------------------
Mon May 1 19:33:19 UTC 2017 - toddrme2178@gmail.com
- Make only the python2 package provide the "docutils" package.
-------------------------------------------------------------------
Thu Apr 20 15:43:28 UTC 2017 - toddrme2178@gmail.com
- Fix url
- Executables are python-independent so only have the python3
version provide them.
- Implement update-alternatives to avoid conflict with rst2html5
-------------------------------------------------------------------
Fri Mar 24 12:53:55 UTC 2017 - aloisio@gmx.com
- Converted to single-spec
- Added python-docutils-rpmlintrc
-------------------------------------------------------------------
Thu Mar 9 11:39:11 UTC 2017 - dmueller@suse.com
- update to 0.13.1:
* New HTML writer generating HTML 5.
* languages: persian/farsi (fa) and latvian (la) mappings.
* change default base url for :rfc: to http://tools.ietf.org/html/
latex2e: Fix admonition width, remove deprecated options,
better tablewidth auto, ...
-------------------------------------------------------------------
Mon Aug 15 14:51:56 UTC 2016 - toddrme2178@gmail.com
- Fix update-alternatives implementation.
-------------------------------------------------------------------
Wed Oct 29 02:14:00 UTC 2014 - Led <ledest@gmail.com>
- fix bashisms in pre script
-------------------------------------------------------------------
Tue Jul 15 10:36:57 UTC 2014 - toddrme2178@gmail.com
- Update to 0.12
* docs/ref/rst/directives.txt
- Update "math" and "csv-table" descriptions.
* docutils/parsers/rst/directives/images.py
- Fix [258] figwidth="image" generates unitless width value.
* docutils/parsers/rst/states.py
- Improve error report when a non-ASCII character is specified as
delimiter, quote or escape character under Python 2.
Fixes [ 249 ] and [ 250 ].
* docutils/writers/html4css1/__init__.py
- Don't add newline after inline math.
Thanks to Yury G. Kudryashov for the patch.
* docutils/writers/latex2e/__init__.py
- Fix [ 239 ] Latex writer glues paragraphs with figure floats.
- Apply [ 116 ] by Kirill Smelkov. Don't hardcode \large for subtitle.
* docutils/writers/odf_odt/__init__.py
- Apply patch by Jakub Wilk to fix bug [ 100 ].
* test/test_error_reporting.py
- Fix [ 223 ] by removing redundant tests we do not have control over.
* test/test_nodes.py
- Apply [ 115 ] respect fixed 2to3 string literal conversion behavior.
-------------------------------------------------------------------
Tue Sep 24 09:48:27 UTC 2013 - toddrme2178@gmail.com
- Update to 0.11
* Fix for the overwritting of document attributes.
* Support embedded aliases within hyperlink references.
* try local import of docutils components (reader, writer, parser,
language module) before global search.
* Python 3.3 checks CVS syntax only if "strict" is True.
* Now, it is easy to add a custom stylesheet to Docutils' default
stylesheet with, e.g.,
--stylesheet_path='html4css1.css, mystyle.css'
* If there is a file html4css1.css in the working directory of the
process at launch, it is used instead of the one provided by
Docutils in the writer source directory.
* New default for math-output: HTML math.css.
* Avoid repeated class declarations in html4css1 writer
* Drop the simple algorithm replacing straight double quotes with
English typographic ones. Activate the SmartQuotes transform if
you want this feature.
* New setting stylesheet_dirs: Comma-separated list of directories
where stylesheets are found. Used by stylesheet_path when
expanding relative path arguments.
* handle lines starting with a period.
* Fix option separating comma was bold (thanks to Bill Morris).
- Use pypi url and download
- Replace rpmlint-non-executable-scripts.diff with sed in the spec
file
-------------------------------------------------------------------
Mon Sep 16 12:09:22 UTC 2013 - tchvatal@suse.com
- Fix the symlink creation.
-------------------------------------------------------------------
Mon Sep 16 10:32:48 UTC 2013 - tchvatal@suse.com
- Drop r7486-python33-compat.patch as it is not needed.
-------------------------------------------------------------------
Mon Sep 16 10:31:09 UTC 2013 - tchvatal@suse.com
- Use update-alternatives to allow switching between py2 and py3
version of doctool binaries.
-------------------------------------------------------------------
Wed Jul 3 15:37:57 UTC 2013 - dmueller@suse.com
- update to 0.10:
- add rpmlint-non-executable-scripts.diff
* SmartQuotes transform for typographic quotes and dashes.
* FileInput/FileOutput: no system-exit on IOError. The handle_io_errors option is ignored.
* <code> tag for inline "code", do not drop nested inline nodes (syntax highlight tokens).
* Customizable MathJax URL (based on patch by Dmitry Shachnev).
* No line break after opening inline math tag.
-------------------------------------------------------------------
Tue Nov 20 19:34:53 UTC 2012 - saschpe@suse.de
- Run testsuite
- Correctly fix non-excutable script warning
- Remove outdated macros
- Also remove "*.py" ending in egg-info files
-------------------------------------------------------------------
Fri Oct 26 08:26:29 UTC 2012 - highwaystar.ru@gmail.com
- patch from upstream for python3.3 support
* Fix [3541369] Relative __import__ also with Python 3.3
-------------------------------------------------------------------
Thu May 3 14:28:17 UTC 2012 - toddrme2178@gmail.com
- Update to version 0.9:
* reStructuredText "code" role and directive with syntax
highlighting by Pygments_.
* "code" option of the "include" directive.
* Fix [ 3402314 ] allow non-ASCII whitespace, punctuation
characters and "international" quotes around inline markup.
* Fix handling of missing stylesheets.
* Fix [ 2971827 ] and [ 3442827 ] extras/roman.py moved to
docutils/utils/roman.py
* docutils.utils is now a package (providing a place for
sub-modules)
* change default for `math-output` setting to MathJax
* Support the `abbreviation` and `acronym` standard roles.
* Record only files required to generate the LaTeX source as
dependencies.
* Use ``\setcounter{secnumdepth}{0}`` instead of ``*``-versions
when suppressing LaTeX section numbering.
- Cleaned up spec files
- Fix rpmlint warnings
-------------------------------------------------------------------
Mon Apr 30 14:07:34 UTC 2012 - cfarrell@suse.com
- license update: Python-2.0 and BSD-2-Clause and GPL-2.0+ and GPL-3.0+ and
SUSE-Public-Domain
tools/editors/emacs/rst.el is GPL-3.0+ - see also COPYING file
-------------------------------------------------------------------
Fri Apr 27 14:07:19 UTC 2012 - toddrme2178@gmail.com
- Fix building python 3 package on openSUSE 11.4 x86_64
-------------------------------------------------------------------
Tue Apr 24 09:02:35 UTC 2012 - saschpe@suse.de
- Disable testsuite altogether, fails also on the bleeding_edge_* repos
-------------------------------------------------------------------
Tue Feb 28 08:58:23 UTC 2012 - saschpe@suse.de
- Fixed SLE_11_SP2 build by disabling the testsuite
-------------------------------------------------------------------
Fri Sep 23 10:19:38 UTC 2011 - saschpe@suse.de
- Fixed build:
* python-xml is only required on SUSE
* pyxml is required on Fedora (and RHEL)
-------------------------------------------------------------------
Wed Sep 21 10:15:51 UTC 2011 - saschpe@suse.de
- Don't run tests on SLE, they break the build
-------------------------------------------------------------------
Wed Sep 21 09:47:31 UTC 2011 - saschpe@suse.de
- Renamed to python-docutils (from docutils), also fixes rpmlint
warning about naming policy
- Update to version 0.8.1:
* Change last file with Apache license to BSD-2-Clause and correct copyright
info for rst.el
* Fix tests under py3k.
* Clean up Babel language setting. Restores Sphinx compatibility.
- Changes from version 0.8.0:
* Some additions to the Docutils core are released under the 2-Clause BSD
license.
* Handle language codes according to BCP 47.
* If the specified langauage is not supported by Docutils, warn and fall
back to English.
* Math support: reStructuredText "math" role and directive, math and
math_block doctree elements.
* Orphaned "python" reader and "newlatex2e" writer moved to the sandbox.
* Added lithuanian mappings.
- Changes from version 0.7.0:
* Support SVG and SWF images
* Generate valid XHTML for centered images with targets. Use CSS classes
instead of "align" tags for image alignment.
* Preserve runs of spaces in 'inline literals'.
* Deprecate figure_footnotes setting.
* Rename use_latex_footnotes setting to docutils_footnotes.
* New latex_preamble setting.
* Use PDF standard fonts (Times/Helvetica/Courier) as default.
* hyperref package called with unicode option
* Drop the special output_encoding default ("latin-1"). The Docutils wide
default (usually "UTF-8") is used instead.
- Spec file cleanup:
* Removed outdated docutils-0.6-insecure-temp.patch
* Fixed non-executable scripts rpmlint warning
* Removed ".py" ending from executables in /usr/bin, this is what
other Python packages expect anyway
-------------------------------------------------------------------
Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de
- Remove redundant tags/sections from specfile
(cf. packaging guidelines)
-------------------------------------------------------------------
Mon Dec 20 10:36:00 UTC 2010 - saschpe@suse.de
- reduce rpmlint complaints:
* name in summary
* executables in doc package ('tools' folder)
-------------------------------------------------------------------
Sun Dec 12 12:26:31 UTC 2010 - saschpe@gmx.de
- update to 0.6
* support for SVG and SWF images in HTML writer
* many improvements in LaTeX2e writer
- re-generated spec file with py2pack
* now builds for Fedora and Mandriva
-------------------------------------------------------------------
Thu Mar 18 16:50:35 CET 2010 - matejcik@suse.cz
- update to 0.6
* scaling figures/images by percents
* many improvements in LaTeX2e writer
- fixed insecure usage of temp files in emacs mode
(bnc#564366)
-------------------------------------------------------------------
Tue Aug 11 15:14:34 CEST 2009 - matejcik@suse.cz
- build as noarch on new distros
-------------------------------------------------------------------
Wed Aug 5 17:50:16 CEST 2009 - matejcik@suse.cz
- update to 0.5
* added hebrew mappings
* configuration is now in UTF-8
* minor fixes and refactoring
-------------------------------------------------------------------
Tue Feb 28 16:46:02 CET 2006 - jmatejek@suse.cz
- updated to reflect python changes due to #149809
-------------------------------------------------------------------
Wed Jan 25 21:35:33 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
-------------------------------------------------------------------
Sun Jan 22 00:17:14 CET 2006 - cthiel@suse.de
- update to 0.4
-------------------------------------------------------------------
Tue May 31 11:13:03 CEST 2005 - ltinkl@suse.cz
- update to 0.3.9
-------------------------------------------------------------------
Mon Jan 03 15:46:05 CET 2005 - mcihar@suse.cz
- update to 0.3.7
-------------------------------------------------------------------
Fri Jul 30 17:08:51 CEST 2004 - mcihar@suse.cz
- update to 0.3.5
-------------------------------------------------------------------
Mon May 31 09:58:18 CEST 2004 - mcihar@suse.cz
- updated to 0.3.3-alpha
-------------------------------------------------------------------
Thu Mar 18 20:33:59 CET 2004 - mcihar@suse.cz
- corrected python dependency
-------------------------------------------------------------------
Tue Feb 10 17:27:34 CET 2004 - vinil@suse.cz
- initial version (CVS from 2004-02-10)

135
python-docutils.spec Normal file
View File

@ -0,0 +1,135 @@
#
# spec file
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?sle15_python_module_pythons}
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
Name: python-docutils%{psuffix}
Version: 0.19
Release: 0
Summary: Python Documentation Utilities
License: BSD-2-Clause AND Python-2.0 AND GPL-2.0-or-later AND GPL-3.0-or-later AND SUSE-Public-Domain
URL: https://pypi.python.org/pypi/docutils/
Source: https://files.pythonhosted.org/packages/source/d/docutils/docutils-%{version}.tar.gz
Source99: python-docutils-rpmlintrc
# PATCH-FIX-OPENSUSE pygments-2.14.patch shp#docutils#201
Patch0: pygments-2.14.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: %{python_module xml}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-xml
Requires(post): update-alternatives
Requires(postun):update-alternatives
Recommends: python-Pillow
Recommends: python-Pygments
Requires: python-packaging
Recommends: python-roman
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module Pillow}
BuildRequires: %{python_module Pygments}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module roman}
%endif
%if "%{python_flavor}" == "python3" || "%{?python_provides}" == "python3"
Provides: docutils = %{version}
Obsoletes: docutils < %{version}
%endif
%python_subpackages
%description
Docutils is a modular system for processing documentation into useful formats,
such as HTML, XML, and LaTeX. For input Docutils supports reStructuredText, an
easy-to-read, what-you-see-is-what-you-get plaintext markup syntax.
%prep
%autosetup -p1 -n docutils-%{version}
# Remove useless ".py" ending from executables:
for i in tools/rst*; do mv "$i" "${i/.py}"; done
sed -i "s|'tools/\(rst.*\)\.py'|'tools/\1'|" setup.py
find . -name \*.mp4 -print -exec chmod -x '{}' \;
# Actually seems to work with Python 3.6
sed -i -e '/python_requires/s/7/6/' setup.py
%build
%pyproject_wheel
%install
%if !%{with test}
%pyproject_install
for binary in docutils rst2html rst2latex rst2man rst2odt rst2odt_prepstyles rst2pseudoxml rst2s5 rst2xetex rst2xml rstpep2html rst2html4 rst2html5 ; do
%python_clone -a %{buildroot}%{_bindir}/$binary
done
%{python_expand %fdupes %{buildroot}%{$python_sitelib}
# Remove shebang from non-executable files
for i in code_analyzer error_reporting punctuation_chars smartquotes math/latex2mathml math/math2html math/tex2mathml_extern ; do
sed -i -e '1{\@^#! *%{_bindir}.*python@d}' %{buildroot}%{$python_sitelib}/docutils/utils/$i.py
done
for i in writers/xetex/__init__ writers/_html_base __main__ parsers/commonmark_wrapper parsers/recommonmark_wrapper ; do
sed -i -e '1{\@^#! *%{_bindir}.*python@d}' %{buildroot}%{$python_sitelib}/docutils/$i.py
done
}
%endif
%check
%if %{with test}
%python_exec test/alltests.py -v
%endif
%if !%{with test}
%post
%{python_install_alternative docutils rst2html rst2latex rst2man rst2odt rst2odt_prepstyles rst2pseudoxml rst2s5 rst2xetex rst2xml rstpep2html rst2html4 rst2html5}
%postun
%{python_uninstall_alternative docutils rst2html rst2latex rst2man rst2odt rst2odt_prepstyles rst2pseudoxml rst2s5 rst2xetex rst2xml rstpep2html rst2html4 rst2html5}
%endif
%if !%{with test}
%files %{python_files}
%license COPYING.txt licenses/*.txt
%doc FAQ.txt HISTORY.txt README.txt THANKS.txt BUGS.txt docs/*
%python_alternative %{_bindir}/docutils
%python_alternative %{_bindir}/rst2html
%python_alternative %{_bindir}/rst2latex
%python_alternative %{_bindir}/rst2man
%python_alternative %{_bindir}/rst2odt
%python_alternative %{_bindir}/rst2odt_prepstyles
%python_alternative %{_bindir}/rst2pseudoxml
%python_alternative %{_bindir}/rst2s5
%python_alternative %{_bindir}/rst2xetex
%python_alternative %{_bindir}/rst2xml
%python_alternative %{_bindir}/rstpep2html
%python_alternative %{_bindir}/rst2html4
%python_alternative %{_bindir}/rst2html5
%{python_sitelib}/docutils/
%{python_sitelib}/docutils-%{version}*-info
%endif
%changelog