
    big                         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Z
d ZddZd Zd	 Zdd
Zd ZddZddZy)    N)utils)DEFAULT_UNIX_SOCKETIS_WINDOWS_PLATFORM)find_config_filez	meta.jsonc                      d} t               }|r<	 t        |      5 }t        j                  |      j	                  dd      } d d d        | S | S # 1 sw Y   | S xY w# t
        $ r Y yw xY w)NdefaultcurrentContext)r   openjsonloadget	Exception)namedocker_cfg_pathfs      P/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/docker/context/config.pyget_current_context_namer      st    D&(O	o& E!yy|''(8)DE K4K	E K  		s.   A &AA AA A 	A&%A&c                    | dk(  rd } t               }i }|r*	 t        |      5 }t        j                  |      }d d d        |j                  dd       }|r| s|d= n	| r| |d<   ny 	 t        |d      5 }t        j                  ||d       d d d        y # 1 sw Y   [xY w# t        $ r}|cY d }~S d }~ww xY w# 1 sw Y   y xY w# t        $ r}|cY d }~S d }~ww xY w)Nr   r	   w   )indent)r   r
   r   r   r   r   dump)r   r   configr   ecurrent_contexts         r   #write_context_name_to_docker_configr      s    y&(OF	o& &!1& jj!148Ot#$	#' /3' 	+1IIfa*	+ 	+& & 	H		+ 	+ so   B BB $C 0B6	C BB 	B3'B.(B3.B36B?;C ?C 	CCCCc                 f    t        j                  | j                  d            j                         S )Nzutf-8)hashlibsha256encode	hexdigestr   s    r   get_context_idr#   1   s#    >>$++g./99;;    c                      t         j                  j                  t         j                  j                  t	               xs d      d      S )N contexts)ospathjoindirnamer    r$   r   get_context_dirr-   5   s-    77<<(8(:(@bA:NNr$   c                     t         j                  j                  t               d      }| r)t         j                  j                  |t	        |             S |S )Nmeta)r(   r)   r*   r-   r#   )r   meta_dirs     r   get_meta_dirr1   9   s;    ww||O-v6Hww||HnT&:;;Or$   c                 \    t         j                  j                  t        |       t              S N)r(   r)   r*   r1   METAFILEr"   s    r   get_meta_filer5   @   s    77<<T*H55r$   c                     t               }| r+t        j                  j                  |dt	        |       |      S t        j                  j                  |d      S )Ntls)r-   r(   r)   r*   r#   )r   endpointcontext_dirs      r   get_tls_dirr:   D   s@    !#Kww||Kt0DhOO77<<U++r$   c                 z    t        j                  | t        |      }|t        k(  r|j	                  d      r|dd  }|S )Nzhttp+   )r   
parse_hostr   r   
startswith)r)   r7   hosts      r   get_context_hostr@   K   s<    D"5s;D""??7#8DKr$   r3   )Nr&   )NF)r   r   r(   dockerr   docker.constantsr   r   docker.utils.configr   r4   r   r   r#   r-   r1   r5   r:   r@   r,   r$   r   <module>rD      sE      	  E 0	2<O6,r$   