
    bi                     \    d dl Z d dlZd dlZd dlZd dlZddlmZmZ ddlm	Z	  G d d      Z
y)    N   )	constantserrors)create_environment_dictc                   2    e Zd ZddZd Zd Zd Zd Zd Zy)	StoreNc                     t         j                  |z   | _        t        j                  | j                        | _        || _        | j
                  %t        j                  | j                   dd       yy)z Create a store object that acts as an interface to
            perform the basic operations for storing, retrieving
            and erasing credentials using `program`.
        N' not installed or not available in PATHr   )
stacklevel)	r   PROGRAM_PREFIXprogramshutilwhichexeenvironmentwarningswarn)selfr   r   s      S/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/docker/credentials/store.py__init__zStore.__init__   s_    
 !//'9<<-&88MM<<. GH     c                    t        |t              s|j                  d      }| j                  d|      }t	        j
                  |j                  d            }|d   dk(  r*|d   dk(  r"t        j                  d| j                         |S )zt Retrieve credentials for `server`. If no credentials are found,
            a `StoreError` will be raised.
        utf-8getUsername SecretzNo matching credentials in )

isinstancebytesencode_executejsonloadsdecoder   CredentialsNotFoundr   )r   serverdataresults       r   r   z	Store.get   s     &%(]]7+F}}UF+DKK01 *#x(8B(>,,-dll^<  r   c                 v    t        j                  |||d      j                  d      }| j                  d|      S )z_ Store credentials for `server`. Raises a `StoreError` if an error
            occurs.
        )	ServerURLr   r   r   store)r"   dumpsr    r!   )r   r&   usernamesecret
data_inputs        r   r+   zStore.store.   sA     ZZ !
  6'?	 	
 }}Wj11r   c                 j    t        |t              s|j                  d      }| j                  d|       y)z_ Erase credentials for `server`. Raises a `StoreError` if an error
            occurs.
        r   eraseN)r   r   r    r!   )r   r&   s     r   r1   zStore.erase9   s*     &%(]]7+Fgv&r   c                 n    | j                  dd      }t        j                  |j                  d            S )zB List stored credentials. Requires v0.4.0+ of the helper.
        listNr   )r!   r"   r#   r$   )r   r'   s     r   r3   z
Store.listA   s,     }}VT*zz$++g.//r   c                 J   | j                   "t        j                  | j                   d      d }t	        | j
                        }	 t        j                  | j                   |g||      }|S # t        j                  $ r&}t        j                  || j                        |d }~wt        $ ru}|j                  t        j                  k(  r#t        j                  | j                   d      |t        j                  d|j                   d|j                         |d }~ww xY w)Nr
   )inputenvzUnexpected OS error "z	", errno=)r   r   
StoreErrorr   r   r   
subprocesscheck_outputCalledProcessErrorprocess_store_errorOSErrorerrnoENOENTstrerror)r   subcmdr/   outputr6   es         r   r!   zStore._executeG   s   88##<<. GH  %d&6&67	,,6"*#F  ,, 	E,,Q=1D 	ww%,,&''||n$KL ''+AJJ<y	J	s%   $A- -D" !B!!D"-A0DD")N)	__name__
__module____qualname__r   r   r+   r1   r3   r!    r   r   r   r      s     (	2'0r   r   )r=   r"   r   r8   r   r   r   r   utilsr   r   rF   r   r   <module>rH      s&          *R Rr   