Python 3.13 removed the pipes module from the standard library

That module was a wrapper over the popen module and it was scheduled to
be removed in Python 3.11.

This code is also compatible with Python 2.

(cherry picked from commit d06a034578)
This commit is contained in:
José Matos 2024-08-25 10:14:18 +01:00
parent fd9f09e517
commit f95e238ccd
2 changed files with 12 additions and 11 deletions

View File

@ -79,7 +79,7 @@
# If possible, the script will use pdftocairo instead of gs,
# as it's much faster and gives better results.
import glob, os, pipes, re, sys, tempfile
import glob, os, re, subprocess, sys, tempfile
from lyxpreview_tools import check_latex_log, copyfileobj, error, filter_pages,\
find_exe, find_exe_or_terminate, join_metrics_and_rename, latex_commands, \
@ -281,15 +281,14 @@ def legacy_latex_file(latex_file, fg_color, bg_color):
def crop_files(pnmcrop, basename):
t = pipes.Template()
t.append('%s -left' % pnmcrop, '--')
t.append('%s -right' % pnmcrop, '--')
for file in glob.glob("%s*.ppm" % basename):
tmp = tempfile.TemporaryFile()
new = t.open(file, "r")
copyfileobj(new, tmp)
if not new.close():
conv_call = f'{pnmcrop} -left -right -- {file}'
conv_status = subprocess.run(conv_call, stdout=tmp)
if conv_status:
continue
copyfileobj(tmp, open(file, "wb"), 1)

View File

@ -119,6 +119,9 @@ What's new
- Fix possible crash in undo code after inserting note inset over a
multi-paragraph selection.
- Fix a Python script, used to preview math expressions, that used a
module that is removed in Python 3.13.
* DOCUMENTATION AND LOCALIZATION
@ -144,4 +147,3 @@ What's new
* BUILD/INSTALLATION
- Fix 'make install' target for autotools builds with autoconf >= 2.72.