
    Xh{                     V    d Z ddlZddlZddlmZ ddlmZ ddlmZ  G d de      Z	dZ
y)	z'Tornado handlers for plugin management.    N)
APIHandler)web)PluginManagerc                   l     e Zd Zdef fdZej                  d        Zej                  d        Z xZ	S )PluginHandlermanagerc                 0    t         |           || _        y )N)super
initializer   )selfr   	__class__s     ^/var/www/html/myenv/lib/python3.12/site-packages/jupyterlab/handlers/plugin_manager_handler.pyr   zPluginHandler.initialize   s        c                    K   | j                   j                          d{   }| j                  d       | j                  t	        j
                  |             y7 :w)z'GET query returns info on plugins locksN   )r   plugin_locks
set_statusfinishjsondumps)r   lockss     r   getzPluginHandler.get   sC      ll//11DJJu%& 2s   AA;Ac                 h  K   | j                         }|d   }|d   }|dvs|st        j                  dd|d|      d}	 |dk(  r$| j                  j	                  |       d{   }n(|d	k(  r#| j                  j                  |       d{   }|j                  dk(  r| j                  d
       n| j                  d       | j                  t        j                  t        j                  |                   y7 7 p# t        $ r%}t        j                  d
t        |            |d}~ww xY ww)zPOST query performs an action on a specific plugin

        Body arguments:
            {
                "cmd": Action to perform - ["enable", "disable"]
                "plugin_name": Plugin name
            }
        cmdplugin_name)enabledisablei  zCould not process instruction z with plugin name Nr   r   i  error   )get_json_bodyr   	HTTPErrorr   r   r   	Exceptionstrstatusr   r   r   r   dataclassesasdict)r   datar   name	ret_valuees         r   postzPluginHandler.post   s     !!#5kM"++4--07I$R 
 		4h"&,,"5"5d";;		!"&,,"6"6t"<<	 w&OOC OOC DJJ{11)<=> << 	4--SV,!3	4sN   ?D2#D %C=&(D C?D A*D2=D ?D 	D/
 D**D//D2)
__name__
__module____qualname__r   r   r   authenticatedr   r+   __classcell__)r   s   @r   r   r      sC    -  	' ' 	? ?r   r   z/lab/api/plugins)__doc__r%   r   jupyter_server.base.handlersr   tornador   jupyterlab.extensions.managerr   r   plugins_handler_path r   r   <module>r7      s.    -
   3  7-?J -?b + r   