
    Fh}                     v    S SK r S SKrS SKJr  S SKJr  S SKJrJr  Sr	S r
S rS\\\4   S	\\\4   S
\4S jrg)    N)Path)Union)unquoteurlparsez^file://([^/]+|/[A-Z]:)c                     [        U 5      R                  5       R                  5       R                  5       n[        R
                  " [        S U5      nU$ )zAttempt to make an LSP rootUri from a ContentsManager root_dir

Special care must be taken around windows paths: the canonical form of
windows drives and UNC paths is lower case
c                 ^    SR                  U R                  S5      R                  5       5      $ )Nz	file://{}   )formatgrouplower)ms    dC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\jupyter_lsp/paths.py<lambda> normalized_uri.<locals>.<lambda>   s     +"4"4QWWQZ5E5E5G"H    )r   
expanduserresolveas_uriresubRE_PATH_ANCHOR)root_dirroot_uris     r   normalized_urir   
   sE     H~((*224;;=HvvH(H Or   c                     [         R                  S:H  n[        U 5      n[        UR                  5      nU(       a  UR                  S5      (       a  USS nU$ UnU$ )zReturn a path string for give file:/// URI.

Respect the different path convention on Windows.
Based on https://stackoverflow.com/a/57463161/6646912, BSD 0
nt/r	   N)osnamer   r   path
startswith)file_uriwindows_pathfile_uri_parsedfile_uri_path_unquotedresults        r   file_uri_to_pathr'      s_     77d?Lx(O$_%9%9:.99#>>'+ M (Mr   rootr    returnc                      [        U5      R                  5       R                  [        U 5      R                  5       5        g! [         a     gf = f)z"Return if path is relative to rootTF)r   r   relative_to
ValueError)r(   r    s     r   is_relativer-   '   sD    T
((d););)=> s   ?A 
AA)r   r   pathlibr   typingr   urllib.parser   r   r   r   r'   strboolr-    r   r   <module>r4      sO    	 	   *+
 eCI& eCI.> 4 r   