
    EjG                     j    d Z ddlZddlZddlZddlmZ ddlmZ  G d d          Z ee          Z	dS )zn
Symbol synonym resolution. Unchanged from the old td-params-server -
see config.py for SYMBOL_SYNONYMS_PATH.
    N)Dict)SYMBOL_SYNONYMS_PATHc                   0    e Zd ZdefdZd ZdedefdZdS )SymbolResolverpathc                     || _         t          j                    | _        d | _        i | _        |                                  d S N)_path	threadingLock_lock_mtime_table_load)selfr   s     '/wd/license_services/symbol_resolver.py__init__zSymbolResolver.__init__   s7    
^%%
&(

    c                    t           j                            | j                  si | _        d | _        d S t           j                            | j                  }|| j        k    rd S t          | j        dd          5 }t          j	        |          }d d d            n# 1 swxY w Y   d |
                                D             | _        || _        d S )Nrzutf-8)encodingc                 D    i | ]\  }}|                     d           ||S )_)
startswith).0kvs      r   
<dictcomp>z(SymbolResolver._load.<locals>.<dictcomp>    s/    MMM11<<;L;LMq!MMMr   )osr   existsr
   r   r   getmtimeopenjsonloaditems)r   mtimefhraws       r   r   zSymbolResolver._load   s    w~~dj)) 	DKDKF  ,,DKF$*cG444 	 )B--C	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 MM		MMMs   =BB"%B"incoming_symbolreturnc                     | j         5  |                                  | j                            ||          cd d d            S # 1 swxY w Y   d S r	   )r   r   r   get)r   r)   s     r   resolvezSymbolResolver.resolve#   s    Z 	E 	EJJLLL;???ODD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   /AAAN)__name__
__module____qualname__strr   r   r-    r   r   r   r      sh        S      Es Es E E E E E Er   r   )
__doc__r#   r   r   typingr   configr   r   resolverr2   r   r   <module>r7      s    
  				           ' ' ' ' ' 'E E E E E E E E6 >.//r   