Ë
    ÁvžjÇ  ã                   óf   — d Z ddlZddlZddlmZm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 extension management.é    N)Ú	urlencodeÚ
urlunparse)Ú
APIHandler)Úweb)ÚExtensionManagerc                   ól   ‡ — e Zd Zdefˆ fd„Zej                  d„ «       Zej                  d„ «       Zˆ xZ	S )ÚExtensionHandlerÚmanagerc                 ó0   •— t         ‰| �  «        || _        y )N)ÚsuperÚ
initializer
   )Úselfr
   Ú	__class__s     €ú~/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jupyterlab/handlers/extension_manager_handler.pyr   zExtensionHandler.initialize   s   ø€ Ü‰ÑÔØˆ�ó    c           
   ƒ   ór  K  — | j                  dd«      }t        dt        | j                  dd«      «      «      }t        dt        | j                  dd«      «      «      }| j                  d	d
«      dk(  r%| j                  j                  |||«      ƒ d{  –—†  | j                  j                  |||«      ƒ d{  –—† \  }}| j                  d«       |��g }||dœ}|�||d<   t        | j                  j                  | j                  j                  | j                  j                  dt        |d¬«      df«      }|j                  d|› d�«       |dkD  rt        d|dz
  «      |d<   t        | j                  j                  | j                  j                  | j                  j                  dt        |d¬«      df«      }	|j                  d|	› d�«       ||k  rt        |dz   |«      |d<   t        | j                  j                  | j                  j                  | j                  j                  dt        |d¬«      df«      }
|j                  d|
› d�«       d|d<   t        | j                  j                  | j                  j                  | j                  j                  dt        |d¬«      df«      }|j                  d|› d�«       | j                  ddj!                  |«      «       | j#                  t%        j&                  t)        t+        t,        j.                  |«      «      «      «       y7 �Œ�7 �Œ{­w)a©  GET query returns info on extensions

        Query arguments:
            refresh: [optional] Force refreshing the list of extensions - ["0", "1"]; default 0
            query: [optional] Query to search for extensions - default None (i.e. returns installed extensions)
            page: [optional] Result page - default 1 (min. 1)
            per_page: [optional] Number of results per page - default 30 (max. 100)
        ÚqueryNé   ÚpageÚ1éd   Úper_pageÚ30ÚrefreshÚ0éÈ   )r   r   Ú T)ÚdoseqÚ<z>; rel="last"z>; rel="prev"z>; rel="next"z>; rel="first"ÚLinkz, )Úget_argumentÚmaxÚintÚminr
   r   Úlist_extensionsÚ
set_statusr   ÚrequestÚprotocolÚhostÚpathr   ÚappendÚ
set_headerÚjoinÚfinishÚjsonÚdumpsÚlistÚmapÚdataclassesÚasdict)r   r   r   r   Ú
extensionsÚ	last_pageÚlinksÚ
query_argsÚlastÚprevÚnext_Úfirsts               r   ÚgetzExtensionHandler.get   sØ  è ø€ ð ×!Ñ! '¨4Ó0ˆÜ�1”c˜$×+Ñ+¨F°CÓ8Ó9Ó:ˆÜ�sœC × 1Ñ 1°*¸dÓ CÓDÓEˆØ×Ñ˜Y¨Ó,°Ò3Ø—,‘,×&Ñ& u¨d°HÓ=×=Ð=à&*§l¡l×&BÑ&BÀ5È$ÐPXÓ&Y× YÑˆ
�Ià�‰˜ÔØÑ ØˆEØ"+¸ÑBˆJØÐ Ø&+�
˜7Ñ#Üà—L‘L×)Ñ)Ø—L‘L×%Ñ%Ø—L‘L×%Ñ%ØÜ˜j°Ô5Øðó	ˆDð �L‰L˜1˜T˜F -Ð0Ô1Ø�aŠxÜ%(¨¨D°1©HÓ%5�
˜6Ñ"Ü!àŸ™×-Ñ-ØŸ™×)Ñ)ØŸ™×)Ñ)ØÜ! *°DÔ9Øðó	�ð —‘˜q   mÐ4Ô5Ø�iÒÜ%(¨°©°9Ó%=�
˜6Ñ"Ü"àŸ™×-Ñ-ØŸ™×)Ñ)ØŸ™×)Ñ)ØÜ! *°DÔ9Øðó	�ð —‘˜q   }Ð5Ô6Ø!"ˆJ�vÑÜà—L‘L×)Ñ)Ø—L‘L×%Ñ%Ø—L‘L×%Ñ%ØÜ˜j°Ô5Øðó	ˆEð �L‰L˜1˜U˜G >Ð2Ô3Ø�O‰O˜F D§I¡I¨eÓ$4Ô5à�‰”D—J‘Jœt¤C¬×(:Ñ(:¸JÓ$GÓHÓIÕJð{ >ùà Yûs%   ‚BL7ÂL1Â$L7Â9L4Â:I8L7Ì4L7c              ƒ   ó8  K  — | j                  «       }|d   }|d   }|j                  d«      }|dvs|st        j                  dd|›d|›�«      ‚d}	 |d	k(  r%| j                  j                  ||«      ƒ d{  –—† }nz|d
k(  r$| j                  j                  |«      ƒ d{  –—† }nQ|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 ŒÂ7 Œ›7 Œt# t        $ r%}t        j                  dt        |«      «      |‚d}~ww xY w­w)a^  POST query performs an action on a specific extension

        Body arguments:
            {
                "cmd": Action to perform - ["install", "uninstall", "enable", "disable"]
                "extension_name": Extension name
                "extension_version": [optional] Extension version (used only for install action)
            }
        ÚcmdÚextension_nameÚextension_version)ÚinstallÚ	uninstallÚenableÚdisablei¦  zCould not process instruction z with extension name NrB   rC   rD   rE   iô  ÚerroréÉ   )Úget_json_bodyr=   r   Ú	HTTPErrorr
   rB   rC   rD   rE   Ú	ExceptionÚstrÚstatusr&   r.   r/   r0   r3   r4   )r   Údatar?   ÚnameÚversionÚ	ret_valueÚes          r   ÚpostzExtensionHandler.postb   sr  è ø€ ð ×!Ñ!Ó#ˆØ�5‰kˆØÐ$Ñ%ˆØ—(‘(Ð.Ó/ˆØÐCÑCÉ4Ü—-‘-ØØ0°°Ð7LÈTÈHÐUóð ð
 ˆ	ð
	4Ø�iÒØ"&§,¡,×"6Ñ"6°t¸WÓ"E×E‘	Ø˜Ò#Ø"&§,¡,×"8Ñ"8¸Ó">×>‘	Ø˜’Ø"&§,¡,×"5Ñ"5°dÓ";×;‘	Ø˜	Ò!Ø"&§,¡,×"6Ñ"6°tÓ"<×<�	ð ×Ñ˜wÒ&Ø�O‰O˜CÕ à�O‰O˜CÔ Ø�‰”D—J‘Jœ{×1Ñ1°)Ó<Ó=Õ>ð Føà>øà;øà<ùÜò 	4Ü—-‘- ¤S¨£VÓ,°!Ð3ûð	4üss   ‚AFÁ$E) Á7E!Á8(E) Â E#Â!(E) Ã	E%Ã
(E) Ã2E'Ã3E) Ã7A*FÅ!E) Å#E) Å%E) Å'E) Å)	FÅ2 FÆFÆF)
Ú__name__Ú
__module__Ú__qualname__r   r   r   Úauthenticatedr=   rR   Ú__classcell__)r   s   @r   r	   r	      sI   ø„ ðÐ"2õ ð 	×ÑñJKó ðJKðX 	×Ññ%?ó ô%?r   r	   z/lab/api/extensions)Ú__doc__r3   r/   Úurllib.parser   r   Újupyter_server.base.handlersr   Útornador   Újupyterlab.extensions.managerr   r	   Úextensions_handler_path© r   r   Ú<module>r_      s3   ðÙ 0ó
 Û ß .å 3Ý å :ôx?�zô x?ðx 1Ñ r   