o
    ^i                     @   sP   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 deZdS )	4Extension manager without installation capabilities.    N)Optional)
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/home/ubuntu/hpml_nyu/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   inttupledictr	   r   r   r$   r%   r   r   r   r   r
      s     

r
   )r)   r   typingr   #jupyterlab_server.translation_utilsr   managerr   r   r   r	   r
   r   r   r   r   <module>   s    