Ë
    :vžjŽ  ã                   óŽ   — d Z ddlZddlZddlZ G d„ de«      Z G d„ de«      Z G d„ de«      Z G d	„ d
e«      Zdd„Z	dd„Z
d„ Zy)zExtension utilities.é    Nc                   ó   — e Zd ZdZy)ÚExtensionLoadingErrorzAn extension loading error.N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úo/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jupyter_server/extension/utils.pyr   r      s   „ Ú%r   r   c                   ó   — e Zd ZdZy)ÚExtensionMetadataErrorzAn extension metadata error.Nr   r
   r   r   r   r      s   „ Ú&r   r   c                   ó   — e Zd ZdZy)ÚExtensionModuleNotFoundz$An extension module not found error.Nr   r
   r   r   r   r      s   „ Ú.r   r   c                   ó   — e Zd ZdZy)ÚNotAnExtensionAppz2An error raised when a module is not an extension.Nr   r
   r   r   r   r      s   „ Ú<r   r   c                 óÐ   — 	 | j                   S # t        $ r Y nw xY w	 | j                  }n# t        $ r d}t        |«      d‚w xY wt	        j
                  d| ›d�t        d¬«       |S )zµLooks for _load_jupyter_server_extension as an attribute
    of the object or module.

    Adds backwards compatibility for old function name missing the
    underscore prefix.
    z6_load_jupyter_server_extension function was not found.Nz=A `_load_jupyter_server_extension` function was not found in z¥. Instead, a `load_jupyter_server_extension` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.é   )Ú
stacklevel)Ú_load_jupyter_server_extensionÚAttributeErrorÚload_jupyter_server_extensionr   ÚwarningsÚwarnÚDeprecationWarning)ÚobjÚloggerÚfuncÚmsgs       r   Ú
get_loaderr       s‡   € ðØ×1Ñ1Ð1øÜò Ùðúð3Ø×0Ñ0‰øÜò 3ØFˆÜ# CÓ(¨dÐ2ð3úô ‡M�Mð	Ø�7ð ð	ô
 	Øõð €Ks   ‚ Ž	™ž+ «Ac                 óÜ  — t        j                  «       }t        j                  | «      }t        j                  «       }||z
  }|r-|dkD  r|j                  n|j
                  } |d| › d|d›d�«       	 ||j                  «       fS # t        $ r Y nw xY w	 |j                  «       }|r|j                  d| › d�«       ||fS # t        $ r Y nw xY w|r|j                  d| › d�«       || | d	œgfS )
a5  Find the extension metadata from an extension package.

    This looks for a `_jupyter_server_extension_points` function
    that returns metadata about all extension points within a Jupyter
    Server Extension package.

    If it doesn't exist, return a basic metadata packet given
    the module name.
    gš™™™™™¹?zExtension package z took z.4fzs to importz?A `_jupyter_server_extension_points` function was not found in z§. Instead, a `_jupyter_server_extension_paths` function was found and will be used for now. This function name will be deprecated in future releases of Jupyter Server.zS, so Jupyter Server will look for extension points in the extension pacakge's root.)ÚmoduleÚname)
ÚtimeÚperf_counterÚ	importlibÚimport_moduleÚinfoÚdebugÚ _jupyter_server_extension_pointsr   Ú_jupyter_server_extension_pathsÚwarning)Úpackage_namer   Ú
start_timer"   Úend_timeÚdurationÚlogÚextension_pointss           r   Úget_metadatar3   6   s*  € ô ×"Ñ"Ó$€JÜ×$Ñ$ \Ó2€FÜ× Ñ Ó"€HØ˜*Ñ$€Hñ Ø%¨š^ˆf�kŠk°·±ˆÙÐ   ¨f°X¸c°NÀ+ÐNÔOðØ�v×>Ñ>Ó@Ð@Ð@øÜò ÙðúðØ!×AÑAÓCÐÙØ�N‰NðØ(˜>ð *%ð%ôð Ð'Ð'Ð'øÜò Ùðúñ
 Ø�‰ðØ(˜>ð *ðô	
ð ˜|°\ÑBÐCÐCÐCs$   Á3B Â	BÂBÂ*C  Ã 	CÃCc                 ó    — ddl m}  || ¬«      S )a[  Raises an exception is the extension is missing a needed
    hook or metadata field.
    An extension is valid if:
    1) name is an importable Python package.
    1) the package has a _jupyter_server_extension_points function
    2) each extension path has a _load_jupyter_server_extension function

    If this works, nothing should happen.
    é   )ÚExtensionPackage)r#   )Úmanagerr6   )r#   r6   s     r   Úvalidate_extensionr8   m   s   € õ *á Ô&Ð&r   )N)r	   r&   r$   r   Ú	Exceptionr   r   r   r   r    r3   r8   r
   r   r   Ú<module>r:      sR   ðÙ ã Û Û ô&˜Iô &ô'˜Yô 'ô/˜iô /ô=˜	ô =óó<4Dón'r   