
    +jA                     v    d dl Z d dlmZ  e j        e          Zh dZh dZd Zd Z	d Z
 G d d	          ZdS )
    N)
split_when>   on_server_bindon_server_readyon_server_starton_client_exitedon_server_exitedon_server_reloadon_client_connected>   
 *,-[]{|}!"&'()+./:;`c                 &    | t           v p|t           v S N)JS_DELIMITORabs     V/DATA/AppData/hermes/venv/lib/python3.11/site-packages/trame_server/utils/namespace.pyjs_tokenizerr(   +   s    1\ 11    c                     | |k    o| dv S )N>   r   r    r$   s     r'   vue_template_tokenizerr,   /   s    6%a:o%r)   c                 J    |                      d          rdS | t          v rdS dS )Ntrame__TF)
startswithRESERVED_CONTROLLER_NAMES)names    r'   is_name_reservedr2   3   s1    y!! t(((t5r)   c                   \    e Zd ZdZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd ZdS )
Translatorz?Helper for mapping or namespacing names for state or controllerNc                 f    t                               d|           || _        i | _        i | _        d S )NzTranslator(prefix=%s))loggerinfo_prefix_transl_reverse_translselfprefixs     r'   __init__zTranslator.__init__@   s3    +V444!r)   c                     || _         d S r"   )r8   r;   s     r'   
set_prefixzTranslator.set_prefixF   s    r)   c                 .    || j         |<   || j        |<   d S r"   )r9   r:   )r<   keytranslated_keys      r'   add_translationzTranslator.add_translationI   s!    *S/2^,,,r)   c                 x    t          |          r|S || j        v r| j        |         S | j        r| j         | S |S r"   )r2   r9   r8   r<   rB   s     r'   translate_keyzTranslator.translate_keyM   sS    C   	J$,<$$< 	*l)C)))
r)   c                     t          |          r|S || j        v r| j        |         S | j        r|                    | j                  S |S r"   )r2   r:   r8   removeprefix)r<   rC   s     r'   reverse_translate_keyz Translator.reverse_translate_keyZ   sZ    N++ 	"!!T111'77< 	=!..t|<<<r)   c                        fd|D             S )Nc                 :    g | ]}                     |          S r+   rG   .0vr<   s     r'   
<listcomp>z-Translator.translate_list.<locals>.<listcomp>h   s'    888!""1%%888r)   r+   r<   key_lists   ` r'   translate_listzTranslator.translate_listg   s    8888x8888r)   c                 D      fd|                                 D             S )Nc                 B    i | ]\  }}                     |          |S r+   rM   )rO   krP   r<   s      r'   
<dictcomp>z-Translator.translate_dict.<locals>.<dictcomp>k   s-    FFFTQ""1%%qFFFr)   )items)r<   key_dicts   ` r'   translate_dictzTranslator.translate_dictj   s'    FFFFX^^5E5EFFFFr)   c                        fd|D             S )Nc                 :    g | ]}                     |          S r+   )rJ   rN   s     r'   rQ   z5Translator.reverse_translate_list.<locals>.<listcomp>n   s'    @@@!**1--@@@r)   r+   rR   s   ` r'   reverse_translate_listz!Translator.reverse_translate_listm   s    @@@@x@@@@r)   c                     i }|                                 D ]:\  }}|                     |          }|                     |          }||k    r|||<   ;|S r"   )rY   rJ   rG   )r<   rZ   drB   valuereverse_keyrC   s          r'   reverse_translate_dictz!Translator.reverse_translate_dictp   sf    "..** 	' 	'JC44S99K!//<<N n$$!&+r)   c                    g }t          |t                    D ]}d                    |          }t                              d| j        |           |                    |          rL|                     |          }t                              d| j        |           |                    |           |                    |           t                              dd                    |                     d                    |          S )N z(prefix=%s) token %sz(prefix=%s) translated %sz => %s)	r   r(   joinr6   r7   r8   hasrG   append)r<   state
expressiontokenstoken	token_str_tokens          r'   translate_js_expressionz"Translator.translate_js_expression~   s    
L99 	) 	)EIKK.iHHHyy## )++I667vNNNf%%%%i((((Hbggfoo...wwvr)   c                 h   g }t          |t                    D ]}d                    |          }t                              d|           |                    d          r*|                    |                     ||                     q|                    |           d                    |          S )Nre   z	 token %sr   )r   r,   rf   r6   r7   r/   rh   ro   )r<   ri   rj   rk   rl   rm   s         r'   translate_vue_templatingz#Translator.translate_vue_templating   s    
,BCC 	) 	)EIKKY///##C(( )d::5)LLMMMMi((((wwvr)   c                 ,    |                      |          S r"   rM   rF   s     r'   __call__zTranslator.__call__   s    !!#&&&r)   r"   )__name__
__module____qualname____doc__r>   r@   rD   rG   rJ   rT   r[   r^   rc   ro   rq   rs   r+   r)   r'   r4   r4   =   s        II" " " "  3 3 3    9 9 9G G GA A A     	 	 	' ' ' ' 'r)   r4   )loggingmore_itertoolsr   	getLoggerrt   r6   r0   r#   r(   r,   r2   r4   r+   r)   r'   <module>r{      s     % % % % % %		8	$	$     42 2 2& & &  ]' ]' ]' ]' ]' ]' ]' ]' ]' ]'r)   