
    <[j              	         d Z ddlmZ dZdZg dZddlZddlmZ ddl	m
Z
mZmZmZmZmZmZ  G d	 d
ej                  Ze G d de                      Ze G d de                      Ze
eeeeedf         Ze
eee         f         Zd#dZd$dZe
eeeee
eedf                  eeef         df         Z G d de          Z G d de          Z G d de          Z G d de          Z  G d d e          Zd%d"Z!dS )&zFA tiny library to safely render compact HTML5 from Python expressions.    )annotationsz1.3.0zNiklas Fiekas)	FragSupportsRender	Attributerender_intorenderhrawfraghtmlN)escape)UnionDictIterableListTupleProtocolruntime_checkablec                  L    e Zd Zej        d
d            ZddZexZxZZ	ddZ
d	S )r   builder	List[str]returnNonec                    d S N selfr   s     Y/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/tinyhtml/__init__.pyr   zFrag.render_into   s        strc                     t          |           S r   r   r   s    r   r   zFrag.render   s    d||r    c                2    d|                                  dS )Nzraw()r#   r$   s    r   __repr__zFrag.__repr__#   s    (dkkmm((((r    Nr   r   r   r   r   r!   )__name__
__module____qualname__abcabstractmethodr   r   _repr_html___str____html__r'   r   r    r   r   r      so               (.-K-'H) ) ) ) ) )r    r   c                      e Zd ZddZdS )SupportsDunderHTMLr   r!   c                    d S r   r   r$   s    r   r1   zSupportsDunderHTML.__html__)       r    Nr)   )r*   r+   r,   r1   r   r    r   r3   r3   '   (             r    r3   c                      e Zd ZddZdS )SupportsJupyterReprHTMLr   r!   c                    d S r   r   r$   s    r   r/   z#SupportsJupyterReprHTML._repr_html_/   r5   r    Nr)   )r*   r+   r,   r/   r   r    r   r8   r8   -   r6   r    r8   r   r   r   r   r   r   c                   | d S t          | t                    r&|                    t          | d                     d S t          | t                    r|                     |           d S t          | t                    r)|                    |                                            d S t          | t                    r)|                    | 	                                           d S t          | t                    rt          d|           t          | d          r| D ]}t          ||           d S |                    t          t          |           d                     d S )NFquotezcannot render bytes as html: __iter__)
isinstancer!   appendr   r   r   r3   r1   r8   r/   bytes	TypeErrorhasattr)r   r   cs      r   r   r   7   sm   |	D#		 7vd%00011111	D$		 7!!!!!	D,	-	- 
7t}}'''''	D1	2	2 7t''))*****	D%	 	  7@@@AAA	z	"	" 7 	$ 	$A7####	$ 	$ 	vc$iiu55566666r    r!   c                P    g }t          | |           d                    |          S )N )r   join)r   r   s     r   r   r   K   s)    Gg777r    c                  &    e Zd ZddZdd
ZddZdS )r	   _h__namer!   attrsr   r   r   c                    |r(|                                 r|                                st          d|          || _        d |                                D             | _        d S )Nzinvalid html tag: c                4    i | ]\  }}t          |          |S r   )_normalize_attr).0attrvalues      r   
<dictcomp>zh.__init__.<locals>.<dictcomp>\   s&    TTT{tUod++UTTTr    )isasciiisalnum
ValueErrornameitemsrI   )r   rH   rI   s      r   __init__z
h.__init__U   sm      	>6>>++ 	>0@0@ 	><&<<===	TTekkmmTTT


r    r   r   c                   |                     d           |                     | j                   | j                                        D ]j\  }}|du s||du rd}nt	          |t
                    rnt	          |t                    rt          d|          t          |d          rjt	          |t                    r2d
                    d |                                D                       }nd
                    d	 |D                       }|snt          |          }|                     d           |                     |           |s|                     d
           |                     t          |d                              dd                     |                     d           l|                     d           d S )N<FTrE   z'cannot render bytes as html attribute: r=    c              3  $   K   | ]\  }}||V  d S r   r   )rM   keyvals      r   	<genexpr>z h.render_into.<locals>.<genexpr>q   s+      $N$NXS##$NS$N$N$N$N$N$Nr    c              3  8   K   | ]}|t          |          V  d S r   )r!   )rM   r\   s     r   r]   z h.render_into.<locals>.<genexpr>s   s(      $R$R##/SXX////$R$Rr    z="r;   "z&quot;>)r?   rT   rI   rU   r>   r!   r@   rA   rB   dictrF   r   replace)r   r   rN   rO   s       r   r   zh.render_into^   s   sty!!!:++-- (	% (	%KD%~~ $ E3'' #E5)) # S% S STTT
++ 	#eT** SHH$N$N$N$N$NNNEEHH$R$R$R$R$RRRE  E

 NN3NN4     	%
 u%%%ve5999AA$QQRRRt$$$$sr    childrenr   _hc                "    t          | |          S r   )rd   r   rc   s     r   __call__z
h.__call__   s    $!!!r    N)rH   r!   rI   r   r   r   r(   )rc   r   r   rd   )r*   r+   r,   rV   r   rg   r   r    r   r	   r	   T   sU        U U U U, , , ,\" " " " " "r    r	   c                      e Zd ZddZdd
ZdS )rd   tagr	   rc   Tuple[SupportsRender, ...]r   r   c                "    || _         || _        d S r   )ri   rc   )r   ri   rc   s      r   rV   z_h.__init__   s     r    r   r   c                    | j                             |           | j        D ]}t          ||           |                    d           |                    | j         j                   |                    d           d S )Nz</r`   )ri   r   rc   r?   rT   r   r   childs      r   r   z_h.render_into   s|    W%%%] 	( 	(Ew''''ttx}%%%sr    N)ri   r	   rc   rj   r   r   r(   r*   r+   r,   rV   r   r   r    r   rd   rd      s<        ! ! ! !     r    rd   c                      e Zd Zd
dZddZd	S )r
   r   r!   r   r   c                    || _         d S r   r   )r   r   s     r   rV   zraw.__init__   s    			r    r   r   c                :    |                     | j                   d S r   )r?   r   r   s     r   r   zraw.render_into   s    ty!!!!!r    N)r   r!   r   r   r(   ro   r   r    r   r
   r
      s<           " " " " " "r    r
   c                      e Zd Zd
dZddZd	S )r   rc   r   c                    || _         d S r   )rc   rf   s     r   rV   zfrag.__init__   s     r    r   r   r   r   c                :    | j         D ]}t          ||           d S r   )rc   r   rm   s      r   r   zfrag.render_into   s0    ] 	( 	(Ew''''	( 	(r    N)rc   r   r(   ro   r   r    r   r   r      s<        ! ! ! !( ( ( ( ( (r    c                  ,     e Zd Zd	 fdZd
 fdZ xZS )r   rI   r   r   r   c                :     t                      j        di | d S )Nr   rr   )superrV   )r   rI   	__class__s     r   rV   zhtml.__init__   s&    ))5)))))r    r   r   c                t    |                     d           t                                          |           d S )Nz<!DOCTYPE html>)r?   ry   r   )r   r   rz   s     r   r   zhtml.render_into   s4    ()))G$$$$$r    )rI   r   r   r   r(   )r*   r+   r,   rV   r   __classcell__)rz   s   @r   r   r      s[        * * * * * *% % % % % % % % % %r    r   rN   c                    | dk    rdS d| v r)|                      d                              dd          } | r-|                                 rt          d | D                       st	          d|           | S )Nklassclass_-c              3  J   K   | ]}|                                 p|d k    V  dS )r   N)rR   )rM   chs     r   r]   z"_normalize_attr.<locals>.<genexpr>   s3      +U+U"BJJLL,EB#I+U+U+U+U+U+Ur    zinvalid html attribute name: )rstriprb   rQ   allrS   )rN   s    r   rL   rL      s    ww
d{{{{3''S11  CT\\^^ C+U+UPT+U+U+U(U(U CAAABBBKr    )r   r   r   r   r   r   )r   r   r   r!   )rN   r!   r   r!   )"__doc__
__future__r   __version__
__author____all__r-   r   r   typingr   r   r   r   r   r   r   ABCr   r3   r8   r!   intRenderableItemr   r   r   boolr   r	   rd   r
   r   rL   r   r    r   <module>r      s   M L " " " " " "
   


       R R R R R R R R R R R R R R R R R R) ) ) ) )37 ) ) )        
     h   
 )+BCdTXXY~x'??@7 7 7 7(    #sD(5c4+@"A4T	?TXXY	9" 9" 9" 9" 9" 9" 9" 9"x       " " " " "$ " " "( ( ( ( (4 ( ( (% % % % %1 % % %     r    