
    tjA                     r    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y)
    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 xs |t         v S N)JS_DELIMITORabs     I/DATA/.local/lib/python3.12/site-packages/trame_server/utils/namespace.pyjs_tokenizerr(   +   s    1\ 11    c                     | |k(  xr | dv S )N>   r   r     r$   s     r'   vue_template_tokenizerr,   /   s    6%a:o%r)   c                 :    | j                  d      ry| t        v ryy)Ntrame__TF)
startswithRESERVED_CONTROLLER_NAMES)names    r'   is_name_reservedr2   3   s     y!((r)   c                   Z    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y)
Translatorz?Helper for mapping or namespacing names for state or controllerNc                 Z    t         j                  d|       || _        i | _        i | _        y )NzTranslator(prefix=%s))loggerinfo_prefix_transl_reverse_translselfprefixs     r'   __init__zTranslator.__init__@   s'    +V4!r)   c                     || _         y r"   )r8   r;   s     r'   
set_prefixzTranslator.set_prefixF   s	    r)   c                 @    || j                   |<   || j                  |<   y r"   )r9   r:   )r<   keytranslated_keys      r'   add_translationzTranslator.add_translationI   s     *S/2^,r)   c                     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   sI    C J$,,<<$$<<ll^C5))
r)   c                     t        |      r|S || j                  v r| j                  |   S | j                  r|j                  | j                        S |S r"   )r2   r:   r8   removeprefix)r<   rC   s     r'   reverse_translate_keyz Translator.reverse_translate_keyZ   sQ    N+!!T111''77<<!..t||<<r)   c                 J    |D cg c]  }| j                  |       c}S c c}w r"   rG   r<   key_listvs      r'   translate_listzTranslator.translate_listg   s%    /78x!""1%x888    c                 t    |j                         D ci c]  \  }}| j                  |      | c}}S c c}}w r"   )itemsrG   )r<   key_dictkrO   s       r'   translate_dictzTranslator.translate_dictj   s7    5=^^5EF5ETQ""1%q(5EFFFs   4c                 J    |D cg c]  }| j                  |       c}S c c}w r"   )rJ   rM   s      r'   reverse_translate_listz!Translator.reverse_translate_listm   s%    7?@x!**1-x@@@rQ   c                     i }|j                         D ]2  \  }}| j                  |      }| j                  |      }||k(  s.|||<   4 |S r"   )rS   rJ   rG   )r<   rT   drB   valuereverse_keyrC   s          r'   reverse_translate_dictz!Translator.reverse_translate_dictp   sV    "..*JC44S9K!//<N n$!&+ + r)   c                    g }t        |t              D ]  }dj                  |      }t        j	                  d| j
                  |       |j                  |      rD| j                  |      }t        j	                  d| j
                  |       |j                  |       |j                  |        t        j	                  ddj                  |             dj                  |      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9EIKK.iHyy#++I67vNf%i( : 	Hbggfo.wwvr)   c                 (   g }t        |t              D ]m  }dj                  |      }t        j	                  d|       |j                  d      r"|j                  | j                  ||             ]|j                  |       o dj                  |      S )Nr_   z	 token %sr   )r   r,   r`   r6   r7   r/   rb   ri   )r<   rc   rd   re   rf   rg   s         r'   translate_vue_templatingz#Translator.translate_vue_templating   sx    
,BCEIKKY/##C(d::5)LMi( D wwvr)   c                 $    | j                  |      S r"   rL   rF   s     r'   __call__zTranslator.__call__   s    !!#&&r)   r"   )__name__
__module____qualname____doc__r>   r@   rD   rG   rJ   rP   rV   rX   r]   ri   rk   rm   r+   r)   r'   r4   r4   =   sC    I"39GA 	'r)   r4   )loggingmore_itertoolsr   	getLoggerrn   r6   r0   r#   r(   r,   r2   r4   r+   r)   r'   <module>ru      sG     %			8	$ 42&]' ]'r)   