
    TAi                        S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKJ	r	  SSK
Jr  SSKrSSKrSSKJr  SSKJrJr   " S S	\R&                  5      r S   SS
 jjr    SS jr/ SQrg)zPlugin manager using pluggy.    )annotationsN)Sequence)Path)
pluginspec)
get_parserplugins_only_parserc                  P   ^  \ rS rSrSrSS.   S
U 4S jjjrS rS rS rS	r	U =r
$ )OcrmypdfPluginManager   zpluggy.PluginManager that can fork.

Capable of reconstructing itself in child workers.

Arguments:
    setup_func: callback that initializes the plugin manager with all
        standard plugins
T)builtinsc               v   > X0l         X@l        Xl        X l        [        TU ]  " U0 UD6  U R                  5         g )N)!_OcrmypdfPluginManager__init_args#_OcrmypdfPluginManager__init_kwargs_OcrmypdfPluginManager__plugins _OcrmypdfPluginManager__builtinssuper__init__setup_plugins)selfpluginsr   argskwargs	__class__s        T/var/www/html/land-ocr/venv/lib/python3.13/site-packages/ocrmypdf/_plugin_manager.pyr   OcrmypdfPluginManager.__init__!   s9      # "$)&)    c                n    [        U R                  U R                  U R                  U R                  S9nU$ )N)	init_argsr   r   init_kwargs)dictr   r   r   r   r   states     r   __getstate__"OcrmypdfPluginManager.__getstate__/   s3    &&NN__**	
 r   c                F    U R                   " US   US   US   S.US   D6  g )Nr   r   r   r   r   r   )r   r!   s     r   __setstate__"OcrmypdfPluginManager.__setstate__8   s5    ;)$:&	
 M"		
r   c                (   U R                  [        5        U R                  (       at  [        [        R
                  " [        R                  R                  5      5       H9  nSUR                   3n[        R                  " U5      nU R                  U5        M;     U R                  S5        U R                   H  n[        U[         5      (       d  UR#                  S5      (       a  [!        U5      R$                  n[        R&                  R)                  X25      n[        R&                  R+                  U5      nU[,        R.                  U'   UR0                  R3                  U5        O[        R                  " U5      nU R                  U5        M     g )Nzocrmypdf.builtin_plugins.ocrmypdfz.py)add_hookspecsr   r   sortedpkgutiliter_modulesr*   builtin_plugins__path__name	importlibimport_moduleregisterload_setuptools_entrypointsr   
isinstancer   endswithstemutilspec_from_file_locationmodule_from_specsysmodulesloaderexec_module)r   moduler1   module_namespecs        r   r   #OcrmypdfPluginManager.setup_plugins@   s   :& ?? $$X%=%=%F%FG 36;;-@"006f% 	((4 NND$%%u)=)="4joo ~~==kP"88>+1K(''/ #006MM&! #r   )
__builtins__init_args__init_kwargs	__plugins)r   zSequence[str | Path]r   bool)__name__
__module____qualname____firstlineno____doc__r   r#   r'   r   __static_attributes____classcell__)r   s   @r   r
   r
      s?     	 & 	 
" "r   r
   c                (    [        SU b  U US9$ / US9$ )Nr*   )project_namer   r   )r
   r&   s     r   get_plugin_managerrR   ^   s/     !". 46 r   c                    [         R                  " U S9u  p[        UR                  5      n[	        5       nUR
                  R                  US9  UR
                  R                  US9  UR                  U S9nXEU4$ )N)r   )plugin_manager)parser)	r   parse_known_argsrR   r   r   hook
initializeadd_options
parse_args)r   pre_options_unusedrT   rU   optionss         r   get_parser_options_pluginsr^   h   s     /??TJK'(;(;<N\F""% #  ##6#2T*GN**r   )r
   rR   r^   )NT)r   zSequence[str | Path] | Nonereturnr
   )r   zSequence[str]r_   zHtuple[argparse.ArgumentParser, argparse.Namespace, pluggy.PluginManager])rM   
__future__r   argparser2   importlib.utilr-   r<   collections.abcr   pathlibr   pluggyocrmypdf.builtin_pluginsr*   r   ocrmypdf.clir   r   PluginManagerr
   rR   r^   __all__ r   r   <module>rk      sz    # "     
 $     8D"F00 D"P ;?(+
+M+  Xr   