refactor: centralize plugin manager setup

Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4) <aider@aider.chat>
This commit is contained in:
James R. Barlow
2025-12-21 12:21:48 -08:00
co-authored by aider
parent b1de6a6ad4
commit 62ad37b276
5 changed files with 86 additions and 11 deletions
+6 -2
View File
@@ -483,13 +483,17 @@ def get_options_and_plugins(
Returns:
Tuple of (OCROptions, PluginManager)
"""
# Import here to avoid circular imports
from ocrmypdf.api import setup_plugin_infrastructure
# First pass: get plugins so we can register their options
pre_options, _unused = plugins_only_parser.parse_known_args(args=args)
plugin_manager = get_plugin_manager(pre_options.plugins)
# Set up plugin infrastructure with proper initialization
plugin_manager = setup_plugin_infrastructure(plugins=pre_options.plugins)
# Get parser and let plugins add their options
parser = get_parser()
plugin_manager.hook.initialize(plugin_manager=plugin_manager) # pylint: disable=no-member
plugin_manager.hook.add_options(parser=parser) # pylint: disable=no-member
# Parse all arguments