diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index f5451adb37b0b4..296f2b9870a2e3 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -25,11 +25,21 @@ SOURCE_URI = 'https://github.com/python/cpython/tree/main/%s' # monkey-patch reST parser to disable alphabetic and roman enumerated lists +def _disable_alphabetic_and_roman(text): + try: + # docutils >= 0.22 + from docutils.parsers.rst.states import InvalidRomanNumeralError + raise InvalidRomanNumeralError(text) + except ImportError: + # docutils < 0.22 + return None + + from docutils.parsers.rst.states import Body Body.enum.converters['loweralpha'] = \ Body.enum.converters['upperalpha'] = \ Body.enum.converters['lowerroman'] = \ - Body.enum.converters['upperroman'] = lambda x: None + Body.enum.converters['upperroman'] = _disable_alphabetic_and_roman class PyAwaitableMixin(object): diff --git a/Misc/NEWS.d/next/Documentation/2025-09-23-10-29-31.gh-issue-139257.zze4rw.rst b/Misc/NEWS.d/next/Documentation/2025-09-23-10-29-31.gh-issue-139257.zze4rw.rst new file mode 100644 index 00000000000000..6a35c8d469cf0b --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2025-09-23-10-29-31.gh-issue-139257.zze4rw.rst @@ -0,0 +1 @@ +Support docutils >= 0.22 for documentation generation.