SF.net SVN: docutils:[10198 ] trunk/docutils
milde--- via Docutils-checkins <[email protected]> Sun, 10 Aug 2025 12:13:21 +0000
| Newsgroups | gmane.text.docutils.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 10198
http://sourceforge.net/p/docutils/code/10198
Author: milde
Date: 2025-08-10 12:13:20 +0000 (Sun, 10 Aug 2025)
Log Message:
-----------
Relax "Unexpected section" system message from SEVERE to ERROR.
The new section parsing algorithm [r10093] allows to continue parsing after
problems with the section title markup.
Better feedback to users in cases like::
== =========== ===========
1 Not a span Not a span
----------- -----------
2
== =========== ===========
Also fix typo in last commit and log changes.
Modified Paths:
--------------
trunk/docutils/HISTORY.rst
trunk/docutils/RELEASE-NOTES.rst
trunk/docutils/docutils/parsers/rst/states.py
trunk/docutils/test/test_parsers/test_rst/test_section_headers.py
trunk/docutils/test/test_parsers/test_rst/test_tables.py
trunk/docutils/test/test_parsers/test_rst/test_transitions.py
Modified: trunk/docutils/HISTORY.rst
===================================================================
--- trunk/docutils/HISTORY.rst 2025-08-08 18:23:50 UTC (rev 10197)
+++ trunk/docutils/HISTORY.rst 2025-08-10 12:13:20 UTC (rev 10198)
@@ -21,7 +21,13 @@
- More consistent and concise command line help.
+* docutils/parsers/rst/states.py
+ - Relax "section title" system message from SEVERE to ERROR.
+ - Ensure new "current node" is valid when switching section level
+ (cf. bugs #508 and #509).
+
+
Release 0.22 (2026-07-29)
=========================
Modified: trunk/docutils/RELEASE-NOTES.rst
===================================================================
--- trunk/docutils/RELEASE-NOTES.rst 2025-08-08 18:23:50 UTC (rev 10197)
+++ trunk/docutils/RELEASE-NOTES.rst 2025-08-10 12:13:20 UTC (rev 10198)
@@ -259,7 +259,7 @@
Release 0.23b0 (unpublished)
============================
-...
+Bugfixes and improvements (see HISTORY_).
Release 0.22 (2025-07-29)
Modified: trunk/docutils/docutils/parsers/rst/states.py
===================================================================
--- trunk/docutils/docutils/parsers/rst/states.py 2025-08-08 18:23:50 UTC (rev 10197)
+++ trunk/docutils/docutils/parsers/rst/states.py 2025-08-10 12:13:20 UTC (rev 10198)
@@ -342,7 +342,7 @@
# of the current level:
if newlevel > oldlevel + 1:
styles = ' '.join('/'.join(style) for style in title_styles)
- self.parent += self.reporter.severe(
+ self.parent += self.reporter.error(
'Inconsistent title style:'
f' skip from level {oldlevel} to {newlevel}.',
nodes.literal_block('', source),
@@ -356,9 +356,9 @@
new_parent = parent_sections[newlevel-1].parent
if new_parent is None:
styles = ' '.join('/'.join(style) for style in title_styles)
- self.parent += self.reporter.severe(
+ self.parent += self.reporter.error(
f'Cannot skip from level {oldlevel} to {newlevel}.'
- ' Current element has only {len(self.parent_sections)'
+ ' Current element has only {len(self.parent_sections)}'
' parent sections.'
' (Mismatch of `memo.section_styles`,'
' and the root node of a nested parser?)',
@@ -371,7 +371,7 @@
def title_inconsistent(self, sourcetext, lineno):
# Ignored. Will be removed in Docutils 2.0.
- error = self.reporter.severe(
+ error = self.reporter.error(
'Title level inconsistent:', nodes.literal_block('', sourcetext),
line=lineno)
return error
@@ -2432,7 +2432,7 @@
raise statemachine.TransitionCorrection('text')
else:
blocktext = self.state_machine.line
- msg = self.reporter.severe(
+ msg = self.reporter.error(
'Unexpected section title or transition.',
nodes.literal_block(blocktext, blocktext),
line=self.state_machine.abs_line_number())
@@ -2787,7 +2787,7 @@
# if the error is in a table (try with test_tables.py)?
# print("get_source_and_line", srcline)
# print("abs_line_number", self.state_machine.abs_line_number())
- msg = self.reporter.severe(
+ msg = self.reporter.error(
'Unexpected section title.',
nodes.literal_block(blocktext, blocktext),
source=src, line=srcline)
@@ -2989,7 +2989,7 @@
if len(overline.rstrip()) < 4:
self.short_overline(context, blocktext, lineno, 2)
else:
- msg = self.reporter.severe(
+ msg = self.reporter.error(
'Incomplete section title.',
nodes.literal_block(blocktext, blocktext),
line=lineno)
@@ -3003,7 +3003,7 @@
if len(overline.rstrip()) < 4:
self.short_overline(context, blocktext, lineno, 2)
else:
- msg = self.reporter.severe(
+ msg = self.reporter.error(
'Missing matching underline for section title overline.',
nodes.literal_block(source, source),
line=lineno)
@@ -3014,7 +3014,7 @@
if len(overline.rstrip()) < 4:
self.short_overline(context, blocktext, lineno, 2)
else:
- msg = self.reporter.severe(
+ msg = self.reporter.error(
'Title overline & underline mismatch.',
nodes.literal_block(source, source),
line=lineno)
Modified: trunk/docutils/test/test_parsers/test_rst/test_section_headers.py
===================================================================
--- trunk/docutils/test/test_parsers/test_rst/test_section_headers.py 2025-08-08 18:23:50 UTC (rev 10197)
+++ trunk/docutils/test/test_parsers/test_rst/test_section_headers.py 2025-08-10 12:13:20 UTC (rev 10198)
@@ -104,7 +104,7 @@
<paragraph>
Test unexpected section titles.
<block_quote>
- <system_message level="4" line="4" source="test data" type="SEVERE">
+ <system_message level="3" line="4" source="test data" type="ERROR">
<paragraph>
Unexpected section title.
<literal_block xml:space="preserve">
@@ -112,12 +112,12 @@
=====
<paragraph>
Paragraph.
- <system_message level="4" line="7" source="test data" type="SEVERE">
+ <system_message level="3" line="7" source="test data" type="ERROR">
<paragraph>
Unexpected section title or transition.
<literal_block xml:space="preserve">
-----
- <system_message level="4" line="9" source="test data" type="SEVERE">
+ <system_message level="3" line="9" source="test data" type="ERROR">
<paragraph>
Unexpected section title.
<literal_block xml:space="preserve">
@@ -196,7 +196,7 @@
""",
"""\
<document source="test data">
- <system_message level="4" line="1" source="test data" type="SEVERE">
+ <system_message level="3" line="1" source="test data" type="ERROR">
<paragraph>
Incomplete section title.
<literal_block xml:space="preserve">
@@ -210,7 +210,7 @@
""",
"""\
<document source="test data">
- <system_message level="4" line="1" source="test data" type="SEVERE">
+ <system_message level="3" line="1" source="test data" type="ERROR">
<paragraph>
Missing matching underline for section title overline.
<literal_block xml:space="preserve">
@@ -225,7 +225,7 @@
""",
"""\
<document source="test data">
- <system_message level="4" line="1" source="test data" type="SEVERE">
+ <system_message level="3" line="1" source="test data" type="ERROR">
<paragraph>
Missing matching underline for section title overline.
<literal_block xml:space="preserve">
@@ -265,7 +265,7 @@
""",
"""\
<document source="test data">
- <system_message level="4" line="1" source="test data" type="SEVERE">
+ <system_message level="3" line="1" source="test data" type="ERROR">
<paragraph>
Title overline & underline mismatch.
<literal_block xml:space="preserve">
@@ -495,7 +495,7 @@
Title 3
<paragraph>
Paragraph 3.
- <system_message level="4" line="15" source="test data" type="SEVERE">
+ <system_message level="3" line="15" source="test data" type="ERROR">
<paragraph>
Inconsistent title style: skip from level 1 to 3.
<literal_block xml:space="preserve">
@@ -548,7 +548,7 @@
Title 3
<paragraph>
Paragraph 3.
- <system_message level="4" line="19" source="test data" type="SEVERE">
+ <system_message level="3" line="19" source="test data" type="ERROR">
<paragraph>
Inconsistent title style: skip from level 1 to 3.
<literal_block xml:space="preserve">
Modified: trunk/docutils/test/test_parsers/test_rst/test_tables.py
===================================================================
--- trunk/docutils/test/test_parsers/test_rst/test_tables.py 2025-08-08 18:23:50 UTC (rev 10197)
+++ trunk/docutils/test/test_parsers/test_rst/test_tables.py 2025-08-10 12:13:20 UTC (rev 10198)
@@ -28,6 +28,8 @@
class ParserTestCase(unittest.TestCase):
+ maxDiff = None
+
def test_parser(self):
parser = Parser()
settings = get_default_settings(Parser)
@@ -1269,7 +1271,7 @@
<paragraph>
1
<entry>
- <system_message level="4" line="19" source="test data" type="SEVERE">
+ <system_message level="3" line="19" source="test data" type="ERROR">
<paragraph>
Unexpected section title.
<literal_block xml:space="preserve">
@@ -1276,7 +1278,7 @@
Not a span
-----------
<entry>
- <system_message level="4" line="19" source="test data" type="SEVERE">
+ <system_message level="3" line="19" source="test data" type="ERROR">
<paragraph>
Unexpected section title.
<literal_block xml:space="preserve">
Modified: trunk/docutils/test/test_parsers/test_rst/test_transitions.py
===================================================================
--- trunk/docutils/test/test_parsers/test_rst/test_transitions.py 2025-08-08 18:23:50 UTC (rev 10197)
+++ trunk/docutils/test/test_parsers/test_rst/test_transitions.py 2025-08-10 12:13:20 UTC (rev 10198)
@@ -23,6 +23,8 @@
class ParserTestCase(unittest.TestCase):
+ maxDiff = None
+
def test_parser(self):
parser = Parser()
settings = get_default_settings(Parser)
@@ -146,7 +148,7 @@
<block_quote>
<paragraph>
Block quote.
- <system_message level="4" line="5" source="test data" type="SEVERE">
+ <system_message level="3" line="5" source="test data" type="ERROR">
<paragraph>
Unexpected section title or transition.
<literal_block xml:space="preserve">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
_______________________________________________
Docutils-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/docutils-checkins