Ë
    jË5j#  ã                  ó`   — d Z ddlmZ ddlZddlmZ  ej                  e«      Z G d„ d«      Z	y)z5Plugin option registry for dynamic model composition.é    )ÚannotationsN)Ú	BaseModelc                  ó2   — e Zd ZdZd„ Z	 	 	 	 	 	 dd„Zdd„Zy)ÚPluginOptionRegistrya<  Registry for plugin option models.

    This registry collects option models from plugins during initialization.
    Plugin options can be accessed via nested namespaces on OcrOptions
    (e.g., options.tesseract.timeout) or via flat field names for backward
    compatibility (e.g., options.tesseract_timeout).
    c                ó   — i | _         y )N)Ú_option_models©Úselfs    úO/var/www/html/qr/venv/lib/python3.12/site-packages/ocrmypdf/_plugin_registry.pyÚ__init__zPluginOptionRegistry.__init__   s
   € Ø:<ˆÕó    c                óº   — || j                   v rt        j                  d|› d«       || j                   |<   t        j                  d|› d|j                  › «       y)zÒRegister a plugin's option model.

        Args:
            namespace: The namespace for the plugin options (e.g., 'tesseract')
            model_class: The Pydantic model class for the plugin options
        zPlugin option namespace 'z ' already registered, overridingz.Registered plugin option model for namespace 'z': N)r   ÚlogÚwarningÚdebugÚ__name__)r
   Ú	namespaceÚmodel_classs      r   Úregister_option_modelz*PluginOptionRegistry.register_option_model   sc   € ð ˜×+Ñ+Ñ+ÜK‰KØ+¨I¨;Ð6VÐWôð *5ˆ×Ñ˜IÑ&ä	‰	Ø<¸Y¸KÀsØ×#Ñ#Ð$ð&õ	
r   c                ó6   — | j                   j                  «       S )z(Get all registered plugin option models.)r   Úcopyr	   s    r   Úget_registered_modelsz*PluginOptionRegistry.get_registered_models0   s   € à×"Ñ"×'Ñ'Ó)Ð)r   N)r   Ústrr   ztype[BaseModel]ÚreturnÚNone)r   zdict[str, type[BaseModel]])r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   © r   r   r   r      s.   „ ñò=ð
Øð
Ø+:ð
à	ó
ô**r   r   )
r   Ú
__future__r   ÚloggingÚpydanticr   Ú	getLoggerr   r   r   r   r   r   ú<module>r$      s/   ðñ <å "ã å à€g×Ñ˜Ó!€÷#*ò #*r   