[docutils:bugs] #514 publish_file no longer works / crashes
Günter Milde via Docutils-develop <[email protected]> Mon, 01 Dec 2025 22:44:37 -0000
| Newsgroups | gmane.text.docutils.devel |
|---|---|
| Message-ID | </p/docutils/bugs/514/a7fcaed70d47fe092f92b531d3d4d4d771d5fbb6.bugs@docutils.p.sourceforge.net> |
This is a multi-part message in MIME format.
--===============4141405573519370224==
Content-Type: multipart/related; boundary="===============8282840036207725250=="
This is a multi-part message in MIME format.
--===============8282840036207725250==
Content-Type: multipart/alternative; boundary="===============0472730271592026688=="
MIME-Version: 1.0
--===============0472730271592026688==
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Thank you for the report.
The issue is fixed in [r10267].
---
**[bugs:#514] publish_file no longer works / crashes**
**Status:** open
**Created:** Sat Nov 15, 2025 05:26 PM UTC by Kristian Lehto
**Last Updated:** Sun Nov 16, 2025 04:58 AM UTC
**Owner:** nobody
Hello,
We are using code bellow to convert rst files to html.
Code works fine if we use old docutils version 0.20.1.
python -m pip install docutils==0.20.1
But current 0.22.3 version crashes.
import io
from docutils.core import publish_file
text = open('test.rst', 'rb').read()
source = io.BytesIO(text)
destination = open('test.html', 'w')
publish_file(source=source, destination=destination, writer_name='html')
destination.close()
source.close()
Traceback (most recent call last):
File "C:\projects\test\test.py", line 7, in <module>
publish_file(source=source, destination=destination, writer_name='html')
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python314\Lib\site-packages\docutils\core.py", line 465, in publish_file
output, _publisher = publish_programmatically(
~~~~~~~~~~~~~~~~~~~~~~~~^
source_class=io.FileInput, source=source, source_path=source_path,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<7 lines>...
config_section=config_section,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
enable_exit_status=enable_exit_status)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python314\Lib\site-packages\docutils\core.py", line 794, in publish_programmatically
output = publisher.publish(enable_exit_status=enable_exit_status)
File "C:\Python314\Lib\site-packages\docutils\core.py", line 269, in publish
self.document = self.reader.read(self.source, self.parser,
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
self.settings)
^^^^^^^^^^^^^^
File "C:\Python314\Lib\site-packages\docutils\readers\__init__.py", line 95, in read
self.parse()
~~~~~~~~~~^^
File "C:\Python314\Lib\site-packages\docutils\readers\__init__.py", line 101, in parse
self.parser.parse(self.input, document)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python314\Lib\site-packages\docutils\parsers\rst\__init__.py", line 175, in parse
inputlines = docutils.statemachine.string2lines(
inputstring, tab_width=document.settings.tab_width,
convert_whitespace=True)
File "C:\Python314\Lib\site-packages\docutils\statemachine.py", line 1515, in string2lines
astring = whitespace.sub(' ', astring)
TypeError: cannot use a string pattern on a bytes-like object
---
Sent from sourceforge.net because [email protected] is subscribed to https://sourceforge.net/p/docutils/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/docutils/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list.
--===============0472730271592026688==
MIME-Version: 1.0
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: 7bit
<div class="markdown_content"><p>Thank you for the report.<br/>
The issue is fixed in <span>[r10267]</span>.</p>
<hr/>
<p><strong><a class="alink" href="https://sourceforge.net/p/docutils/bugs/514/">[bugs:#514]</a> publish_file no longer works / crashes</strong></p>
<p><strong>Status:</strong> open<br/>
<strong>Created:</strong> Sat Nov 15, 2025 05:26 PM UTC by Kristian Lehto<br/>
<strong>Last Updated:</strong> Sun Nov 16, 2025 04:58 AM UTC<br/>
<strong>Owner:</strong> nobody</p>
<p>Hello,</p>
<p>We are using code bellow to convert rst files to html.</p>
<p>Code works fine if we use old docutils version 0.20.1.</p>
<p>python -m pip install docutils==0.20.1</p>
<p>But current 0.22.3 version crashes.</p>
<p>import io<br/>
from docutils.core import publish_file</p>
<p>text = open('test.rst', 'rb').read()<br/>
source = io.BytesIO(text)<br/>
destination = open('test.html', 'w')<br/>
publish_file(source=source, destination=destination, writer_name='html')<br/>
destination.close()<br/>
source.close()</p>
<p>Traceback (most recent call last):<br/>
File "C:\projects\test\test.py", line 7, in <module><br/>
publish_file(source=source, destination=destination, writer_name='html')<br/>
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br/>
File "C:\Python314\Lib\site-packages\docutils\core.py", line 465, in publish_file<br/>
output, _publisher = publish_programmatically(<br/>
~~~~~~~~~~~~~~~~~~~~~~~~^<br/>
source_class=io.FileInput, source=source, source_path=source_path,<br/>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br/>
...<7 lines>...<br/>
config_section=config_section,<br/>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br/>
enable_exit_status=enable_exit_status)<br/>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^<br/>
File "C:\Python314\Lib\site-packages\docutils\core.py", line 794, in publish_programmatically<br/>
output = publisher.publish(enable_exit_status=enable_exit_status)<br/>
File "C:\Python314\Lib\site-packages\docutils\core.py", line 269, in publish<br/>
self.document = self.reader.read(self.source, self.parser,<br/>
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^<br/>
self.settings)<br/>
^^^^^^^^^^^^^^<br/>
File "C:\Python314\Lib\site-packages\docutils\readers__init__.py", line 95, in read<br/>
self.parse()<br/>
~~~~~~~~~~^^<br/>
File "C:\Python314\Lib\site-packages\docutils\readers__init__.py", line 101, in parse<br/>
self.parser.parse(self.input, document)<br/>
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^<br/>
File "C:\Python314\Lib\site-packages\docutils\parsers\rst__init__.py", line 175, in parse<br/>
inputlines = docutils.statemachine.string2lines(<br/>
inputstring, tab_width=document.settings.tab_width,<br/>
convert_whitespace=True)<br/>
File "C:\Python314\Lib\site-packages\docutils\statemachine.py", line 1515, in string2lines<br/>
astring = whitespace.sub(' ', astring)<br/>
TypeError: cannot use a string pattern on a bytes-like object</module></p>
<hr/>
<p>Sent from sourceforge.net because [email protected] is subscribed to <a href="https://sourceforge.net/p/docutils/bugs/">https://sourceforge.net/p/docutils/bugs/</a></p>
<p>To unsubscribe from further messages, a project admin can change settings at <a href="https://sourceforge.net/p/docutils/admin/bugs/options.">https://sourceforge.net/p/docutils/admin/bugs/options.</a> Or, if this is a mailing list, you can unsubscribe from the mailing list.</p></div>
--===============0472730271592026688==--
--===============8282840036207725250==--
--===============4141405573519370224==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============4141405573519370224==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline