
    \j,
              	       x    d dl Z dddddZi eddiZded	eeef   d
efdZddedeeef   dz  d
eeef   fdZy)    N
	"\)ntr   r   $valueescapesreturnc                 8    t        j                  dfd|       S )aN  Expand backslash escapes in a single left-to-right pass.

    Processing in one pass (rather than chained `str.replace` calls) ensures an escaped
    backslash (`\\`) is consumed as a unit and cannot merge with the following character,
    e.g. `\\n` is a backslash followed by `n`, not a newline. Unknown escapes are kept as-is.
    z\\(.)c                 d    j                  | j                  d      | j                  d            S )N   r   )getgroup)matchr   s    P/root/.hermes/venv/lib/python3.12/site-packages/huggingface_hub/utils/_dotenv.py<lambda>z_unescape.<locals>.<lambda>   s#    '++ekk!nekkRSn*U     )resub)r
   r   s    `r   	_unescaper      s     66(UW\]]r   
dotenv_strenvironc                    i }t        j                  dt         j                        }| j                         D ]  }|j	                         }|r|j                  d      r(|j                  |      }|s<|j                  d      }d}|j                  d      r|j                  d      xs d}|j	                         }|j                  d      r|j                  d      s"|j                  d	      rQ|j                  d	      r@|j                  d      rt        nt        }	t        |dd
 |	      }n||j                  |      }||||<    |S )z
    Parse a DOTENV-format string and return a dictionary of key-value pairs.
    Handles quoted values, comments, export keyword, and blank lines.
    a  
        ^\s*
        (?:export[^\S\n]+)?               # optional export
        ([A-Za-z_][A-Za-z0-9_]*)          # key
        [^\S\n]*(=)?[^\S\n]*
        (                                 # value group
            (?:
                '(?:\\'|[^'])*'           # single-quoted value
                | \"(?:\\\"|[^\"])*\"     # double-quoted value
                | [^#\n\r]+?              # unquoted value
            )
        )?
        [^\S\n]*(?:\#.*)?$                # optional inline comment
    #r   N       r   ')r   compileVERBOSE
splitlinesstrip
startswithr   r   endswith_DOUBLE_QUOTE_ESCAPES_ESCAPESr   r   )
r   r   envline_patternliner   keyvalraw_valr   s
             r   load_dotenvr0      s+   
 C::	 	

L$ %%' zz|ts+""4(++a.CC{{1~++a..BmmoNN3'CLL,=3>>RUCV[^[g[ghk[l7>7I7I#7N3T\G#C"Iw7C$kk#&C+. Jr   )N)r   r)   r(   strdictr   r0    r   r   <module>r4      s    	
 Ds$7.8.S#. ^S ^4S> ^c ^/C /$sCx.4*? /4PSUXPX> /r   