o
    i                     @   sX   d Z ddlZddlmZmZmZ ddlmZ ddlm	Z	m
Z
mZmZ G dd de
ZdS )	4Extension manager without installation capabilities.    N)DictOptionalTuple)
translator   )ActionResultExtensionManagerExtensionManagerMetadataExtensionPackagec                   @   s   e Zd ZdZedefddZdedee fddZ	ded	e
d
e
deeeef ee
 f fddZddedee defddZdedefddZdS )ReadOnlyExtensionManagerr   returnc                 C   s   t dtjdS )zExtension manager metadata.z	read-only)install_path)r
   sysprefix)self r   Y/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/jupyterlab/extensions/readonly.pymetadata   s   z!ReadOnlyExtensionManager.metadatapkgc                    s   dS )zReturn the latest available version for a given extension.

        Args:
            pkg: The extension to search for
        Returns:
            The latest available version
        Nr   )r   r   r   r   r   get_latest_version   s   z+ReadOnlyExtensionManager.get_latest_versionquerypageper_pagec                    s
   i dfS )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   r   r   r   list_packages    s   z&ReadOnlyExtensionManager.list_packagesN	extensionversionc                    s   t d}td|ddS )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   transr   r   r   install/   s
   

z ReadOnlyExtensionManager.installc                    s   t d}td|ddS )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%   r   r   r   	uninstallB   s
   

z"ReadOnlyExtensionManager.uninstall)N)__name__
__module____qualname____doc__propertyr
   r   strr   r   intr   r   r   r   r   r&   r'   r   r   r   r   r      s     

r   )r+   r   typingr   r   r   #jupyterlab_server.translation_utilsr   managerr   r	   r
   r   r   r   r   r   r   <module>   s    