o
    b                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 e
eddd	dd
ddd Ze
eddd	dd
ddd Ze
eddd	dd
ddd Ze
eddd	dd
ddd ZdS )z I hold HTML generation helpers.
    escape)StringIO)Version)log)
deprecatedTwisted      ztwisted.web.template)replacementc                 C   s   dt |  d S )z4Wrap <pre> tags around some text and HTML-escape it.z<pre>z</pre>r   )text r   2/usr/lib/python3/dist-packages/twisted/web/html.pyPRE   s   r   c                 C   s:   t  }|d | D ]	}|d|  q
|d | S )N<ul>
z<li> %s</li>
</ul>r   writegetvalue)lstioelr   r   r   UL   s   

r   c                 C   sH   t  }|d | D ]\}}|d| d| d q
|d | S )Nr   z<li> <a href="z">z
</a></li>
r   r   )r   r   hrr   r   r   r   linkList"   s   

r   c                 O   sF   z| |i |W S  t y"   td| d t  td Y S w )zoutput(func, *args, **kw) -> html string
    Either return the result of a function (which presumably returns an
    HTML-legal string) or a sparse HTMLized error message and a message
    in the server log.
    zError calling :zAn error occurred.)BaseExceptionr   msgerrr   )funcargskwr   r   r   output,   s   r"   N)__doc__htmlr   r   r   incrementalr   twisted.pythonr   twisted.python.deprecater   r   r   r   r"   r   r   r   r   <module>   s   

	
	