|
From: Günter M. <mi...@us...> - 2025-12-01 23:14:07
|
- **summary**: publish_file no longer works / crashes --> publish_file no longer works with "BytesIO-like" objects.
- **status**: open --> open-fixed
---
**[bugs:#514] publish_file no longer works with "BytesIO-like" objects.**
**Status:** open-fixed
**Created:** Sat Nov 15, 2025 05:26 PM UTC by Kristian Lehto
**Last Updated:** Mon Dec 01, 2025 10:44 PM 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 doc...@li... 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. |