python setup.py check --restructuredtext --strict --metadata
fails with warning: check: Could not finish the parsing.
if the RST document uses code
or code-block
directives. [SF:bugs:270]
#343
Labels
author: msabramo
created: 2014-12-15 19:39:10.826000
assigned: None
SF_url: https://sourceforge.net/p/docutils/bugs/270
python setup.py check --restructuredtext --strict --metadata
fails with:if the RST document uses
code
orcode-block
directives.This is annoying because the document is valid, but it appears to be invalid
and confuses people. For example, see
ionelmc/pytest-benchmark#4 (comment)
How to reproduce this bug
Clone a repo that has a
README.rst
withcode-block
directives in it. E.g.:Observe that it has "code-blocks" in it:
Observe that RST document is valid, according to
rst2html.py
:Observe that
python setup.py check --restructuredtext --strict --metadata
fails:What was expected:
python setup.py check --restructuredtext --strict --metadata
should succeed with no warnings, just asrst2html.py did
, becauseREADME.rst
is a valid RST document.What actually happened:
python setup.py check --restructuredtext --strict --metadata
prints a warning and an error and fails, unlikerst2html.py
The error is coming from here:
https://github.com/python/cpython/blob/master/Lib/distutils/command/check.py#L142
It's happening because of this line:
https://github.com/python/cpython/blob/master/Lib/distutils/command/check.py#L125
If this is changed to:
then things work much better (this is how
tools/quicktest.py
does it for example)so this might actually be a bug in distutils, but changing CPython (and maybe PyPy) is a more laborious and slow process, so I'm thinking it might be nice to work around this in docutils, if isn't too much of a burden. Docutils is on a much shorter release cycle than CPython, so changing docutils is a way to get this fix out to users much faster.
Here's a patch to docutils that solves the problem for me:
commenter: msabramo
posted: 2014-12-15 19:44:13.491000
title: #270
python setup.py check --restructuredtext --strict --metadata
fails withwarning: check: Could not finish the parsing.
if the RST document usescode
orcode-block
directives.attachments:
Attaching
bug_270.patch
, a patch to docutils that fixes this issue ...commenter: msabramo
posted: 2014-12-16 22:16:48.029000
title: #270
python setup.py check --restructuredtext --strict --metadata
fails withwarning: check: Could not finish the parsing.
if the RST document usescode
orcode-block
directives.attachments:
After some discussion on the mailing list with David Goodger, I am revising this a bit. He wanted it to check that it was being called by docutils before messing with anything.
commenter: msabramo
posted: 2014-12-17 06:33:23.387000
title: #270
python setup.py check --restructuredtext --strict --metadata
fails withwarning: check: Could not finish the parsing.
if the RST document usescode
orcode-block
directives.I also created a Python issue (and patch) for this:
http://bugs.python.org/issue23063
but it would be nice still to add a workaround to docutils, so that folks don't need Python 3.5 for this to work.
commenter: msabramo
posted: 2014-12-17 06:48:15.816000
title: #270
python setup.py check --restructuredtext --strict --metadata
fails withwarning: check: Could not finish the parsing.
if the RST document usescode
orcode-block
directives.I also created a branch and pull request on GitHub for this, in case folks find that easier to read and pull from:
msabramo/docutils#1
commenter: milde
posted: 2015-02-16 22:54:20.626000
title: #270
python setup.py check --restructuredtext --strict --metadata
fails withwarning: check: Could not finish the parsing.
if the RST document usescode
orcode-block
directives.commenter: milde
posted: 2015-02-16 22:54:21.433000
title: #270
python setup.py check --restructuredtext --strict --metadata
fails withwarning: check: Could not finish the parsing.
if the RST document usescode
orcode-block
directives.It seems like this is fixed upstream now (no need to wait for 3.5):
http://bugs.python.org/msg234051
Thank you for the report(s), analysis, patch, and patience.
The text was updated successfully, but these errors were encountered: