o
    tf.                     @   sd   d Z ddlZddlmZ ddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ d	d
 Zdd ZdS )zI add language server support to the running jupyter notebook application
    N)Path)ioloop   )add_handlers)LanguageServerManager)normalized_uric              	      s   ddl }ddlm} | j}|j }| j||jI dH  W d   n1 s)w   Y  dd |j	
 D }t|rI| jd| ||d n| jd	 | jd
tj|j	ddd dS )zPerform lazy initialization.r   Nr   )setup_shadow_filesystemc                 S   s    g | ]\}}| d dr|qS )Zrequires_documents_on_diskT)get).0Z	server_idserver r   d/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/jupyter_lsp/serverextension.py
<listcomp>   s    
zinitialize.<locals>.<listcomp>z:[lsp] Servers that requested virtual documents on disk: %s)virtual_documents_urizZ[lsp] None of the installed servers require virtual documents disabling shadow filesystem.z:[lsp] The following Language Servers will be available: {}   T)indent	sort_keys)concurrent.futuresZvirtual_documents_shadowr   language_server_managerfuturesThreadPoolExecutorio_looprun_in_executor
initializeZlanguage_serversitemsanylogdebugformatjsondumps)nbappr   
concurrentr   managerpoolZservers_requiring_disk_accessr   r   r   r      s0   r   c                 C   s   | j ttd t| d }| _| j}| jjdi }d}d}t	|drCt
|j}| jd| t
t|j|j }| jd| n| jd| |j||d	 t|  t	| d
r^| j}ntj }|dt| | dS )z/create a LanguageServerManager and add handlers)r   )parentZpage_config_data root_dirz[lsp] rootUri will be %sz$[lsp] virtualDocumentsUri will be %szA[lsp] %s did not appear to have a root_dir, could not set rootUri)ZrootUriZvirtualDocumentsUrir   r   N)Z
add_traits	traitletsInstancer   r   Zcontents_managerZweb_appsettings
setdefaulthasattrr   r'   r   r   r   Zvirtual_documents_dirwarnupdater   r   r   ZIOLoopcurrent
call_laterr   )r!   r#   contentsZpage_configZroot_urir   r   r   r   r   load_jupyter_server_extension3   s.   



r2   )__doc__r   pathlibr   r(   tornador   handlersr   r#   r   pathsr   r   r2   r   r   r   r   <module>   s    $