Ë
    :vžj)6  ã                  ó„  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZmZmZ ddlmZmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z,m-Z- e	rddl.m/Z/ dZ0 ejb                  d«      Z2dd„Z3 G d„ deee«      Z4 G d„ de4«      Z5dd„Z6d d„Z7y)!zJupyterLab Server handlersé    )ÚannotationsN)Ú	lru_cache)ÚTYPE_CHECKINGÚAny)Úurlparse)ÚFileFindHandlerÚJupyterHandler)ÚExtensionHandlerJinjaMixinÚExtensionHandlerMixin)Úurl_path_join)ÚtemplateÚwebé   )Ú	LabConfigÚget_page_configÚrecursive_update)ÚLicensesHandlerÚLicensesManager)ÚListingsHandlerÚfetch_listings)ÚSettingsHandler)Ú_get_overrides)ÚThemesHandler)ÚTranslationsHandler)ÚWorkspacesHandlerÚWorkspacesManager)ÚLabServerAppzP/(?P<mode>{}|doc)(?P<workspace>/workspaces/[a-zA-Z0-9\-\_]+)?(?P<tree>/tree/.*)?z­
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Error</title>
</head>
<body>
<h2>Cannot find template: "{{name}}"</h2>
<p>In "{{path}}"</p>
</body>
</html>
c                óz   — 	 t        | «      }t        |j                  |j                  g«      S # t        $ r Y yw xY w)zjTest whether a string is a full url (e.g. https://nasa.gov)

    https://stackoverflow.com/a/52455972
    F)r   ÚallÚschemeÚnetlocÚ
ValueError)ÚurlÚresults     úk/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jupyterlab_server/handlers.pyÚis_urlr&   7   s:   € ð
Ü˜#“ˆÜ�F—M‘M 6§=¡=Ð1Ó2Ð2øÜò Ùðús   ‚+. ®	:¹:c                  óx   — e Zd ZdZedd„«       Zej                  ej                  	 d	 	 	 	 	 	 	 dd„«       «       Z	y)Ú
LabHandlerzRender the JupyterLab View.c                ób  — t        | j                  dd«      | j                  _        t        «       }| j                  }|j
                  }| j                  j                  di «      }| j                  j                  dd«      }| j                  j                  dd«      }|j                  t        j                  d«      }| j                  j                  d	«      }| j                  j                  d«      }|j                  d
|«       |j                  d|«       |j                  dg «       |j                  d|«       | j                  j                  |d<   t        j                  j                  t        j                  j!                  |«      «      }d}		 | j"                  j$                  j&                  }	|	xs d|d<   | j                  xj                  dz  c_        | j                  j                  dd«      }
| j2                  }|sd}|j                  d|
«       |j                  d|«       |j5                  «       D ]  }t        ||«      |t7        |«      <   Œ |j5                  «       D ]L  }|j9                  d«      sŒt7        d|z   «      }t        ||«      }|�t;        |«      st=        ||«      }|||<   ŒN |j>                  |j@                  z   }tC        |tE        ||| jF                  ¬«      «       | j                  j                  dd«      }|r	 || |«      }|S # t(        $ rŠ 	 | j"                  j&                  r_| j"                  j&                  |k7  rFt+        j,                  | j"                  j&                  «      j/                  |«      j1                  «       }	n# t(        $ r Y nw xY wY �Œúw xY w)z Construct the page config objectÚstore_idr   Úpage_config_dataÚterminals_availableFÚserver_root_dirÚ Ú/Úbase_urlÚfullStaticUrlÚterminalsAvailableÚignorePluginsÚ
serverRootÚpreferredPathr   Úmathjax_configzTeX-AMS_HTML-full,Safez?https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.jsÚmathjaxConfigÚfullMathjaxUrlÚ_urlÚfull_N)ÚloggerÚpage_config_hook)$ÚgetattrÚapplicationr*   r   ÚextensionappÚapp_settings_dirÚsettingsÚ
setdefaultÚgetÚreplaceÚosÚsepÚstatic_url_prefixÚrstripÚpathÚnormpathÚ
expanduserÚ	serverappÚcontents_managerÚpreferred_dirÚ	ExceptionÚpathlibÚPathÚrelative_toÚas_posixÚmathjax_urlÚtrait_namesÚ
_camelCaseÚendswithr&   ÚujoinÚextra_labextensions_pathÚlabextensions_pathr   r   Úlog)ÚselfÚconfigÚappÚsettings_dirÚpage_configÚ	terminalsÚserver_rootr0   Úfull_static_urlÚpreferred_pathr6   rT   ÚnameÚ	full_nameÚfull_urlrZ   r<   s                    r%   r   zLabHandler.get_page_configF   s?  € ô %,Ø×Ñ˜j¨!ó%
ˆ×ÑÔ!ô “ˆØ ×-Ñ-ˆØ×+Ñ+ˆà—m‘m×.Ñ.Ð/AÀ2ÓFˆØ—M‘M×%Ñ%Ð&;¸UÓCˆ	Ø—m‘m×'Ñ'Ð(9¸2Ó>ˆØ!×)Ñ)¬"¯&©&°#Ó6ˆØ—=‘=×$Ñ$ ZÓ0ˆð ×0Ñ0×7Ñ7¸Ó<ˆØ×Ñ˜°Ô@à×ÑÐ3°YÔ?Ø×Ñ˜°Ô3Ø×Ñ˜|¨[Ô9Ø"&×"2Ñ"2×";Ñ";ˆ�JÑä—g‘g×&Ñ&¤r§w¡w×'9Ñ'9¸+Ó'FÓGˆØˆð	Ø!Ÿ^™^×<Ñ<×JÑJˆNð (6Ò'<¸ˆ�OÑ$à×Ñ×!Ò! QÑ&Õ!àŸ™×*Ñ*Ð+;Ð=UÓVˆà×&Ñ&ˆÙØ[ˆKà×Ñ˜°Ô?Ø×ÑÐ/°Ô=ð ×&Ñ&Ö(ˆDÜ,3°C¸Ó,>ˆKœ
 4Ó(Ò)ð )ð ×&Ñ&Ö(ˆDØ—=‘= Ô(ØÜ" 7¨T¡>Ó2ˆIÜ˜s DÓ)ˆHØÐ#¬F°8Ô,<ä  ¨8Ó4�Ø%-ˆK˜	Ò"ð )ð !×9Ñ9¸C×<RÑ<RÑRÐÜØœÐ);¸\ÐRV×RZÑRZÔ[ô	
ð
  Ÿ=™=×,Ñ,Ð-?ÀÓFÐÙÙ*¨4°Ó=ˆKàÐøôi ò 	ð	à—>‘>×/Ò/°D·N±N×4PÑ4PÐT_Ò4_äŸ™ T§^¡^×%AÑ%AÓBß$™ [Ó1ß!™›ð #ùô
 ò Ùðýð	ús7   Æ L Ì	N.Ì%A5NÎN.Î	N'Î$N.Î&N'Î'N.Î-N.Nc                óø   — |€dn|j                  dd«      }|€dn|j                  dd«      }| j                  «       }|dk(  rd|d<   nd	|d<   ||d
<   ||d<   | j                  d|¬«      }| j                  |«       y)zGet the JupyterLab html page.NÚdefaultz/workspaces/r.   z/tree/Údoczsingle-documentÚmodezmultiple-documentÚ	workspaceÚtreePathz
index.html)r`   )rD   r   Úrender_templateÚwrite)r\   rk   rl   ÚtreeÚ	tree_pathr`   Útpls          r%   rC   zLabHandler.get™   s•   € ð "+Ð!2‘I¸	×8IÑ8IÈ.ÐZ\Ó8]ˆ	Ø˜,‘B¨D¯L©L¸À2Ó,Fˆ	à×*Ñ*Ó,ˆð �5Š=Ø"3ˆK˜Òà"5ˆK˜ÑØ#,ˆ�KÑ Ø"+ˆ�JÑð ×"Ñ" <¸[Ð"ÓIˆØ�
‰
�3�ó    ©Úreturnzdict[str, Any])NNN)rk   ú
str | Nonerl   rv   rp   rv   ru   ÚNone)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚauthenticatedÚremoveslashrC   © rs   r%   r(   r(   C   sc   „ Ù%àòPó ðPðd 	×ÑØ‡_�_àX\ðØðØ2<ðØKUðà	òó ó ñrs   r(   c                  ó.   ‡ — e Zd ZdZedˆ fd„«       Zˆ xZS )ÚNotFoundHandlerzA handler for page not found.c                ór   •— t         ‰| �  «       j                  «       }| j                  j                  |d<   |S )zGet the page config.ÚnotFoundUrl)Úsuperr   ÚcopyÚrequestrI   )r\   r`   Ú	__class__s     €r%   r   zNotFoundHandler.get_page_config´   s5   ø€ ô ‘gÑ-Ó/×4Ñ4Ó6ˆØ%)§\¡\×%6Ñ%6ˆ�MÑ"ØÐrs   rt   )rx   ry   rz   r{   r   r   Ú__classcell__)r†   s   @r%   r€   r€   ±   s   ø„ Ù'àôó ôrs   r€   c           	     ó€  — t        j                  «       D ]K  }|j                  d«      sŒt        ||«      }t	        |||j                  t        j                  d«      «       ŒM t        j                  «       D ]e  }|j                  d«      sŒt        ||«      }t        |«      rŒ-|j                  d«      sd|z   }|j                  d«      r|dd }t	        |||«       Œg t        j                  |j                  j                  dd«      «      }| j                  |t        f«       |j                  rg ndg}|j                   |j"                  z   }t%        |j&                  d«      }| j                  |t(        ||dœf«       |j*                  �r"t-        |j.                  «      \  }}	|	rd	}
|j0                  j3                  |
|	«       |j.                  |j*                  |j4                  ||d
œ}t%        |j6                  d«      }| j                  |t8        |f«       t%        |j6                  d«      }| j                  |t8        |f«       |j:                  r\t%        |j:                  d«      }| j                  |t<        |f«       t%        |j:                  d«      }| j                  |t<        |f«       |j>                  rsdtA        |j>                  «      i}t%        |jB                  d«      }| j                  |tD        |f«       t%        |jB                  d«      }| j                  |tD        |f«       |jF                  jI                  di «      jI                  di «      }|jI                  dd«      }|jI                  dd«      }|r.|r,tK        jL                  dd¬«       ddl'}|jQ                  d«       |jI                  dd«      tR        _*        |jI                  di «      tR        _+        t%        |jX                  «      }t%        |d«      }|r#t[        |j]                  d«      «      tR        _/        |r#t[        |j]                  d«      «      tR        _0        tc        d«       te        tR        j^                  «      dkD  ste        tR        j`                  «      dkD  rUddl3m4} tR        jT                  dz  }|jk                  d„ |d¬ «      tR        _6        tR        jl                  jo                  «        | j                  |tR        i f«       |jp                  r?|jr                  }t%        |d«      }| j                  |tt        ||jp                  ||d!œf«       |jv                  r<|jv                  }t%        |d«      }| j                  |tx        dt{        |¬"«      if«       t%        |j                  d#«      }| j                  |t|        f«       y)$z,Add the appropriate handlers to the web app.Ú_dirr/   r9   Néÿÿÿÿr.   z(.*))rI   Úno_cache_pathszFailed loading overrides: %s)r@   Úschemas_dirr_   rZ   Ú	overridesÚ?z(?P<schema_name>.+)z(?P<locale>.*)Úmanagerz(?P<space_name>.+)r]   r   Úblocked_extensions_urisÚallowed_extensions_uriszsSimultaneous blocked_extensions_uris and allowed_extensions_uris is not supported. Please define only one of those.é   )Ú
stacklevelr   Úlistings_refresh_secondsi  Úlistings_request_optionsÚ,)Úioloopiè  c                 ó   — t        d «      S ©N)r   r~   rs   r%   Ú<lambda>zadd_handlers.<locals>.<lambda>;  s	   € ”N 4Ô(rs   gš™™™™™¹?)Úcallback_timeÚjitter)Ú
themes_urlrI   rZ   r‹   )Úparentz.*)?r   Úclass_trait_namesrW   r=   ÚsetattrrD   rE   rF   r&   Ú
startswithÚMASTER_URL_PATTERNÚformatÚapp_urlÚappendr(   Úcache_filesrY   rZ   rX   Úlabextensions_urlr   rŒ   r   r@   r[   ÚwarningÚuser_settings_dirÚsettings_urlr   Útranslations_api_urlr   Úworkspaces_dirr   Úworkspaces_api_urlr   rA   rC   ÚwarningsÚwarnÚsysÚexitr   r”   Úlistings_request_optsÚlistings_urlÚsetÚsplitr�   r‘   r   ÚlenÚtornador—   ÚPeriodicCallbackÚpcÚstartÚ
themes_dirr�   r   Úlicenses_urlr   r   r€   )ÚhandlersÚextension_appre   ÚvalueÚurl_patternr‹   rZ   r§   r�   ÚerrorÚoverrides_warningÚsettings_configÚsettings_pathÚsetting_pathÚtranslations_pathÚtranslations_lang_pathÚworkspaces_configÚworkspaces_api_pathÚworkspace_api_pathr�   r‘   r°   r³   Úlistings_pathr—   r›   r�   Úthemes_pathr¼   Úlicenses_pathÚfallthrough_urls                                  r%   Úadd_handlersrÏ   ½   s.  € ô ×+Ñ+Ö-ˆØ�}‰}˜VÔ$ØÜ˜ tÓ,ˆÜ�˜t U§]¡]´2·6±6¸3Ó%?Õ@ð	 .ô ×+Ñ+Ö-ˆØ�}‰}˜VÔ$ØÜ˜ tÓ,ˆÜ�%Œ=ØØ×Ñ Ô$Ø˜%‘KˆEØ�>‰>˜#ÔØ˜#˜2�JˆEÜ�˜t UÕ+ð .ô %×+Ñ+¨M×,AÑ,A×,IÑ,IÈ#ÈrÓ,RÓS€KØ‡O�O�[¤*Ð-Ô.ð )×4Ò4‘R¸3¸%€Nð '×?Ñ?À-×BbÑBbÑbÐÜ˜m×=Ñ=¸vÓFÐØ‡O�OàÜØ'¸>ÑJð	
ôð × Ó ä)¨-×*HÑ*HÓIÑˆ	�5áØ >ÐØ×Ñ×%Ñ%Ð&7¸Ô?ð !.× >Ñ >Ø(×4Ñ4Ø)×;Ñ;Ø"4Ø"ñ+
ˆô ˜m×8Ñ8¸#Ó>ˆØ�‰˜¬¸ÐIÔJô ˜]×7Ñ7Ð9NÓOˆØ�‰˜¤¸ÐHÔIð ×-Ò-ô !& m×&HÑ&HÈ#Ó NÐØ�O‰OÐ.Ô0CÀ_ÐUÔVô &+¨=×+MÑ+MÐO_Ó%`Ð"Ø�O‰OÐ3Ô5HÈ/ÐZÔ[ð ×#Ò#Ø&Ô(9¸-×:VÑ:VÓ(WÐXÐô $ M×$DÑ$DÀcÓJÐØ�‰Ð,Ô.?ÐARÐSÔTô # =×#CÑ#CÐEYÓZÐØ�‰Ð+Ô->Ð@QÐRÔSð $×,Ñ,×0Ñ0°¸2Ó>×BÑBÀ>ÐSUÓV€OØ#2×#6Ñ#6Ð7PÐRTÓ#UÐØ#2×#6Ñ#6Ð7PÐRTÓ#UÐáÑ&=Ü�‰ð BØõ	
ó 	à�‰�Œà/>×/BÑ/BØ" Gó0„OÔ,ð -<×,?Ñ,?Ð@ZÐ\^Ó,_„OÔ)Ü˜×3Ñ3Ó4€LÜ˜,¨Ó/€MáÜ25Ð6M×6SÑ6SÐTWÓ6XÓ2YŒÔ/ÙÜ25Ð6M×6SÑ6SÐTWÓ6XÓ2YŒÔ/ä�4Ôô 	ŒO×3Ñ3Ó4°qÒ8ÜŒ×6Ñ6Ó7¸!Ò;å"ä'×@Ñ@À4ÑGˆØ#×4Ñ4Ù(Ø'Øð 5ó 
ŒÔô
 	×Ñ× Ñ Ô"à‡O�O�]¤O°RÐ8Ô9ð ×ÒØ"×-Ñ-ˆ
Ü˜J¨Ó/ˆØ�‰àÜà",Ø)×4Ñ4Ø*<Ø&4ñ	ð	ô	
ð ×!Ò!Ø$×1Ñ1ˆÜ˜l¨FÓ3ˆØ�‰ØœO¨i¼ÐP]Ô9^Ð-_Ð`ô	
ô
 ˜M×1Ñ1°5Ó9€OØ‡O�O�_¤oÐ6Õ7rs   c                ó€   — dj                  d„ | j                  «       D «       «      }|d   j                  «       |dd z   S )zLConvert a string to camelCase.
    https://stackoverflow.com/a/20744956
    r.   c              3  óB   K  — | ]  }|j                  «       sŒ|–— Œ y ­wr™   )Úisalpha)Ú.0Úxs     r%   Ú	<genexpr>z_camelCase.<locals>.<genexpr>e  s   è ø€ Ð<¡˜1°·	±	µ”Q¡ùs   ‚˜r   r   N)ÚjoinÚtitleÚlower)ÚbaseÚoutputs     r%   rV   rV   a  s:   € ð �W‰WÑ< §
¡
¤Ó<Ó<€FØ�!‰9�?‰?Ó˜v a b˜zÑ)Ð)rs   )r#   Ústrru   Úbool)r½   z	list[Any]r¾   r   ru   rw   )rÙ   rÛ   ru   rÛ   )8r{   Ú
__future__r   rE   rP   r®   Ú	functoolsr   Útypingr   r   Úurllib.parser   Újupyter_server.base.handlersr   r	   Ú jupyter_server.extension.handlerr
   r   Újupyter_server.utilsr   rX   r·   r   r   r]   r   r   r   Úlicenses_handlerr   r   Úlistings_handlerr   r   Úsettings_handlerr   Úsettings_utilsr   Úthemes_handlerr   Útranslations_handlerr   Úworkspaces_handlerr   r   r^   r   r¢   ÚTemplateÚDEFAULT_TEMPLATEr&   r(   r€   rÏ   rV   r~   rs   r%   Ú<module>rí      s£   ðÙ  õ #ã 	Û Û Ý ß %Ý !ç Hß ^Ý 7ß !ç @Ñ @ß >ß =Ý -Ý *Ý )Ý 5ß DáÝ!ð Xð ð %�8×$Ñ$ðóÐ ó"	ôkÐ+Ð-BÀNô kô\	�jô 	óa8ôH*rs   