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.
This commit is contained in:
José Matos 2024-08-25 10:14:18 +01:00
parent 648f6a3d45
commit d06a034578

View File

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