diff --git a/src/ocrmypdf/_plugin_manager.py b/src/ocrmypdf/_plugin_manager.py index ba867525..13802f12 100644 --- a/src/ocrmypdf/_plugin_manager.py +++ b/src/ocrmypdf/_plugin_manager.py @@ -21,7 +21,7 @@ import importlib.util import sys from functools import partial from pathlib import Path -from typing import Callable, List, Tuple +from typing import Callable, List, Tuple, Union import pluggy @@ -64,7 +64,9 @@ class OcrmypdfPluginManager(pluggy.PluginManager): ) -def _setup_plugins(pm: pluggy.PluginManager, plugins: List[str], builtins: bool = True): +def _setup_plugins( + pm: pluggy.PluginManager, plugins: List[Union[str, Path]], builtins: bool = True +): pm.add_hookspecs(pluginspec) if builtins: @@ -75,7 +77,7 @@ def _setup_plugins(pm: pluggy.PluginManager, plugins: List[str], builtins: bool else: all_plugins = plugins for name in all_plugins: - if name.endswith('.py'): + if isinstance(name, Path) or name.endswith('.py'): # Import by filename module_name = Path(name).stem spec = importlib.util.spec_from_file_location(module_name, name) diff --git a/tests/test_main.py b/tests/test_main.py index 712753fe..65c33e39 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -256,7 +256,7 @@ def test_missing_docinfo(resources, outpdf): 'eng', '--skip-text', '--plugin', - 'tests/plugins/tesseract_noop.py', + Path('tests/plugins/tesseract_noop.py'), ) assert result == ExitCode.ok