Instead the standard executor will fall back to threads. semfree caused test failures with Py3.14: https://github.com/ocrmypdf/OCRmyPDF/issues/1558 In retrospect and with emerging Python tech like freethreading, semfree is becoming less necessary. We can use threads for the time being. A consequence is that performance may be lower on Lambda and Termux when we are using threads and not shelling out work.
28 lines
815 B
Python
28 lines
815 B
Python
# SPDX-FileCopyrightText: 2023 James R. Barlow
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from ocrmypdf.exceptions import ExitCode
|
|
|
|
from .conftest import is_linux, run_ocrmypdf_api
|
|
|
|
|
|
@pytest.mark.skipif(not is_linux(), reason='semfree plugin only works on Linux')
|
|
def test_semfree(resources, outpdf):
|
|
with pytest.warns(DeprecationWarning, match="semfree.py is deprecated"):
|
|
exitcode = run_ocrmypdf_api(
|
|
resources / 'multipage.pdf',
|
|
outpdf,
|
|
'--skip-text',
|
|
'--skip-big',
|
|
'2',
|
|
'--plugin',
|
|
'ocrmypdf.extra_plugins.semfree',
|
|
'--plugin',
|
|
'tests/plugins/tesseract_noop.py',
|
|
)
|
|
assert exitcode in (ExitCode.ok, ExitCode.pdfa_conversion_failed)
|