
    f                     2    d dl mZ  G d d      Z e       Zy)    )wrapsc                   &    e Zd Zd Zd ZddZd Zy)_PluginManagerc                 .    g | _         i | _        i | _        y N)_registered_plugins_cached_base_callbacks_built_functions)selfs    P/var/www/cvtools/html/venv/lib/python3.12/site-packages/jedi/plugins/__init__.py__init__z_PluginManager.__init__   s    #% &(# "    c                 Z    | j                   j                  |       | j                          y)z<
        Makes it possible to register your plugin.
        N)r   extend_build_functions)r   pluginss     r   registerz_PluginManager.register
   s$     	  ''0r   Nc                       fd}|S )Nc                     t        |       fd       }xs | j                  j                  vsJ j                  | <   | j                  <   |S )Nc                          | i |S r    )argskwargsbuilt_functionspublic_names     r   wrapperz;_PluginManager.decorate.<locals>.decorator.<locals>.wrapper   s    3{3TDVDDr   )r   __name__r
   r	   )callbackr   r   r   namer   s     @@r   	decoratorz*_PluginManager.decorate.<locals>.decorator   sk    8_E E 3("3"3Kd&;&;;;;"33O+3OK(7?D''4Nr   r   )r   r   r    s   `` r   decoratez_PluginManager.decorate   s    	 r   c                     | j                   j                         D ]C  \  }}t        | j                        D ]  }	 t	        ||      } ||      } || j                  |<   E y # t
        $ r Y 7w xY wr   )r	   itemsreversedr   getattrAttributeErrorr
   )r   r   r   pluginfuncs        r   r   z_PluginManager._build_functions"   s    "99??A 		3ND("4#;#;< .."640D  $H~H. +3D!!$'		3
 & s   A""	A.-A.r   )r   
__module____qualname__r   r   r!   r   r   r   r   r   r      s    #
 "
3r   r   N)	functoolsr   r   plugin_managerr   r   r   <module>r-      s    (3 (3V  !r   