
    i              	          d Z ddlZddlZddlmZ ddlmZmZ  ej                  dej                  ej                  z  ej                  z        Zdd	edz  d
ee   fdZddeded	edz  d
dfdZdded	edz  d
dfdZded
ee   fdZy)z-Contains utilities to manage Git credentials.    N   )ENDPOINT   )run_interactive_subprocessrun_subprocessz
        ^\s* # start of line
        credential\.helper # credential.helper value
        \s*=\s* # separator
        ([\w\-\/]+) # the helper name or absolute path (group 1)
        (\s|$) # whitespace or end of line
    )flagsfolderreturnc                     	 t        d|       j                  }t        |      }|S # t        j                  $ r}t        |j                        d}~ww xY w)a  Return the list of git credential helpers configured.

    See https://git-scm.com/docs/gitcredentials.

    Credentials are saved in all configured helpers (store, cache, macOS keychain,...).
    Calls "`git credential approve`" internally. See https://git-scm.com/docs/git-credential.

    Args:
        folder (`str`, *optional*):
            The folder in which to check the configured helpers.
    zgit config --listr	   N)r   stdout_parse_credential_output
subprocessCalledProcessErrorOSErrorstderr)r	   outputparsedexcs       v/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/huggingface_hub/utils/_git_credential.pylist_credential_helpersr   #   sN    " 3FCJJ)&1(( "cjj!!"s   #& AAAtokenusernamec           
          t        d|      5 \  }}|j                  dt         d|j                          d|  d       |j	                          ddd       y# 1 sw Y   yxY w)a  Save a username/token pair in git credential for HF Hub registry.

    Credentials are saved in all configured helpers (store, cache, macOS keychain,...).
    Calls "`git credential approve`" internally. See https://git-scm.com/docs/git-credential.

    Args:
        username (`str`, defaults to `"hf_user"`):
            A git username. Defaults to `"hf_user"`, the default user used in the Hub.
        token (`str`, defaults to `"hf_user"`):
            A git password. In practice, the User Access Token for the Hub.
            See https://huggingface.co/settings/tokens.
        folder (`str`, *optional*):
            The folder in which to check the configured helpers.
    zgit credential approver   url=z

username=z

password=z

N)r   writer   lowerflush)r   r   r	   stdin_s        r   set_git_credentialr!   7   sc     
$$<V	L  Q	d8*K0@/AUGSWXY  s   AAA!c                     t        d|      5 \  }}dt         d}| |d| j                          dz  }|dz  }|j                  |       |j	                          ddd       y# 1 sw Y   yxY w)aY  Erase credentials from git credential for HF Hub registry.

    Credentials are erased from the configured helpers (store, cache, macOS
    keychain,...), if any. If `username` is not provided, any credential configured for
    HF Hub endpoint is erased.
    Calls "`git credential erase`" internally. See https://git-scm.com/docs/git-credential.

    Args:
        username (`str`, defaults to `"hf_user"`):
            A git username. Defaults to `"hf_user"`, the default user used in the Hub.
        folder (`str`, *optional*):
            The folder in which to check the configured helpers.
    zgit credential rejectr   r   
Nz	username=)r   r   r   r   r   )r   r	   r   r    standard_inputs        r   unset_git_credentialr%   N   s~     
$$;F	K 
 P	z,	(..*:);2>>N$N#
 
 
s   AA$$A-r   c                 j    t        t        j                  |       D ch c]  }|d   	 c}      S c c}w )zParse the output of `git credential fill` to extract the password.

    Args:
        output (`str`):
            The output of `git credential fill`.
    r   )sortedGIT_CREDENTIAL_REGEXfindall)r   matchs     r   r   r   i   s8     "6">">v"F	
E!H	
 	
s   0)N)hf_userN)__doc__rer   	constantsr   _subprocessr   r   compile	MULTILINE
IGNORECASEVERBOSEr(   strlistr   r!   r%   r        r   <module>r8      s    4 	    C "rzz ,,
&
3	 "C$J "$s) "(c S cDj \` .3 C$J RV 6S T#Y r7   