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