
    ُkh                        d dl Z d dlZd dlZd dlmZmZ d dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d	ed
edefdZe
fdededee   fdZdee   d
ededefdZ	 ddeded
ededef
dZe
fdeded
edefdZg dZy)    N)AnyOptional)	ContainerNode)_DEFAULT_MARKER_
_get_value)BaseContainer)ConfigKeyError)parse)dictobj_parent_returnc                 X    ddl m} t        |t              sJ |j	                  | |      S )z@Create a config object from `obj`, similar to `OmegaConf.create`r   )	OmegaConf)parent)	omegaconfr   
isinstancer	   create)r   r   r   s      [/var/www/teggl/fontify/venv/lib/python3.12/site-packages/omegaconf/resolvers/oc/__init__.pyr   r      s+    #h...C11    keydefaultc                     	 t         j                  |    S # t        $ r+ |t        ur|t	        |      cY S dcY S t        d|  d      w xY w)a=  
    :param key: Environment variable key
    :param default: Optional default value to use in case the key environment variable is not set.
                    If default is not a string, it is converted with str(default).
                    None default is returned as is.
    :return: The environment variable 'key'. If the environment variable is not set and a default is
            provided, the default is used. If used, the default is converted to a string with str(default).
            If the default is None, None is returned (without a string conversion).
    NzEnvironment variable 'z' not found)osenvironKeyErrorr   str)r   r   s     r   envr      sY    Fzz# F**#*#63w<@D@3C5DEE	Fs    A	A	A	expr_node_c                     | yt        | t              s$t        d|  dt        |       j                         t        | dd      }|j                  ||      }t        |      S )z
    Parse and evaluate `expr` according to the `singleElement` rule of the grammar.

    If `expr` is `None`, then return `None`.
    Nz9`oc.decode` can only take strings or None as input, but `z` is of type singleElement
VALUE_MODE)parser_rule
lexer_mode)node)r   r   	TypeErrortype__name__r   resolve_parse_treer   )r    r   r!   
parse_treevals        r   decoder.   )   sr     |dC 6tDz':':&;=
 	

 t\RJ

%
%jv
%
>Cc?r   messagec                   ddl m} t        | t              s"t	        dt        |       j                   d      t        |t              s"t	        dt        |      j                   d      |j                  d       } ||| d      }|t        d	| d
|  d      |j                  d       }t        j                  |      j                  ||      }t        j                  t        |       |S )Nr   )select_nodez7oc.deprecated: interpolation key type is not a string ()z;oc.deprecated: interpolation message type is not a string ()r   T)absolute_keyzIn oc.deprecated resolver at 'z': Key not found: '')OLD_KEYNEW_KEY)categoryr/   )omegaconf._implr1   r   r   r(   r)   r*   _get_full_keyr
   stringTemplatesafe_substitutewarningswarnUserWarning)	r   r/   r   r!   r1   full_keytarget_nodenew_keymsgs	            r   
deprecatedrD   =   s     ,c3Ed3iFXFXEYYZ[
 	
 gs#I$w-J`J`Iaabc
 	
 ###-Hh$?K,XJ6I#aP
 	
 ''D'1G
//'
"
2
2 3 C MM;4r   c                &    ddl m}  ||| d|      S )Nr   )select_valueT)cfgr   r3   r   )r8   rF   )r   r   r   rF   s       r   selectrH   _   s     -H#D'RRr   )r   r.   rD   r   r   rH   )zG'$OLD_KEY' is deprecated. Change your code and config to use '$NEW_KEY')r   r:   r=   typingr   r   r   r   r   omegaconf._utilsr   r   omegaconf.basecontainerr	   omegaconf.errorsr
   omegaconf.grammar_parserr   omegaconf.resolvers.ocr   r   r   r   r.   rD   rH   __all__ r   r   <module>rQ      s    	     % 9 1 + * '2 2y 2S 2 "2 FS F3 Fhsm F&# ) T c , ]	 	
  	H $S	SS 	S
 	Sr   