From 86a73191b01cb9b2a9da67dea30b63574d16945d Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Tue, 30 Jun 2020 04:17:30 -0700 Subject: [PATCH] Plugin manager: accept Path(plugin) --- src/ocrmypdf/_plugin_manager.py | 8 +++++--- tests/test_main.py | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) 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