
    Xh                     V    d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	m
Z
  G d de      Zy)	4Extension manager without installation capabilities.    N)Optional)
translator   )ActionResultExtensionManagerExtensionManagerMetadataExtensionPackagec                       e Zd ZdZedefd       Zdedee   fdZ	dede
de
deeeef   ee
   f   fd	Zddedee   defdZdedefdZy
)ReadOnlyExtensionManagerr   returnc                 8    t        dt        j                        S )zExtension manager metadata.z	read-only)install_path)r	   sysprefix)selfs    R/var/www/html/myenv/lib/python3.12/site-packages/jupyterlab/extensions/readonly.pymetadataz!ReadOnlyExtensionManager.metadata   s     (#**MM    pkgc                    K   yw)zReturn the latest available version for a given extension.

        Args:
            pkg: The extension to search for
        Returns:
            The latest available version
        N )r   r   s     r   get_latest_versionz+ReadOnlyExtensionManager.get_latest_version   s      s   querypageper_pagec                    K   i dfS w)ab  List the available extensions.

        Args:
            query: The search extension query
            page: The result page
            per_page: The number of results per page
        Returns:
            The available extensions in a mapping {name: metadata}
            The results last page; None if the manager does not support pagination
        Nr   )r   r   r   r   s       r   list_packagesz&ReadOnlyExtensionManager.list_packages    s      4xs   N	extensionversionc                 l   K   t        j                  d      }t        d|j                  d            S w)a  Install the required extension.

        Note:
            If the user must be notified with a message (like asking to restart the
            server), the result should be
            {"status": "warning", "message": "<explanation for the user>"}

        Args:
            extension: The extension name
            version: The version to install; default None (i.e. the latest possible)
        Returns:
            The action result
        
jupyterlaberrorz%Extension installation not supported.statusmessager   loadr   gettext)r   r   r    transs       r   installz ReadOnlyExtensionManager.install/   s2      -EMM2Y$Z
 	
   24c                 l   K   t        j                  d      }t        d|j                  d            S w)aj  Uninstall the required extension.

        Note:
            If the user must be notified with a message (like asking to restart the
            server), the result should be
            {"status": "warning", "message": "<explanation for the user>"}

        Args:
            extension: The extension name
        Returns:
            The action result
        r"   r#   z Extension removal not supported.r$   r'   )r   r   r*   s      r   	uninstallz"ReadOnlyExtensionManager.uninstallB   s2      -EMM2T$U
 	
r,   )N)__name__
__module____qualname____doc__propertyr	   r   strr   r   inttupledictr
   r   r   r+   r.   r   r   r   r   r      s    >N2 N NC HSM  #/2	tC))*HSM9	:
s 
Xc] 
l 
&
 
 
r   r   )r2   r   typingr   #jupyterlab_server.translation_utilsr   managerr   r   r	   r
   r   r   r   r   <module>r;      s(    :
   : _ _D
/ D
r   