� K�g����dZddlmZddlmZddlmZmZmZmZm Z ddl Z ddl m Z m Z mZddgZe jd e j��Zd d�Zd!d�Zd"d�Zd"d�Zd#d�Zd$d%d�Zd&d�Zd&d�ZdS)'a� Python-Markdown provides two serializers which render [`ElementTree.Element`][xml.etree.ElementTree.Element] objects to a string of HTML. Both functions wrap the same underlying code with only a few minor differences as outlined below: 1. Empty (self-closing) tags are rendered as `<tag>` for HTML and as `<tag />` for XHTML. 2. Boolean attributes are rendered as `attrname` for HTML and as `attrname="attrname"` for XHTML. �)� annotations)�ProcessingInstruction)�Comment� ElementTree�Element�QName� HTML_EMPTYN)�Callable�Literal�NoReturn�to_html_string�to_xhtml_stringz)&(?!(?:\#[0-9]+|\#x[0-9a-f]+|[0-9a-z]+);)�text�str�returnr c�l�td�|t|��j�����)Nzcannot serialize {!r} (type {}))� TypeError�format�type�__name__�rs �d/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/markdown/serializers.py�_raise_serialization_errorr:s0�� �)�0�0��t�D�z�z�7J�K�K� � � �c��� d|vrt�d|��}d|vr|�dd��}d|vr|�dd��}|S#ttf$rt |��YdSwxYw)N�&�&amp;�<�&lt;�>�&gt;��RE_AMP�sub�replacer�AttributeErrorrrs r� _escape_cdatar'@s��� )� �$�;�;��:�:�g�t�,�,�D� �$�;�;��<�<��V�,�,�D� �$�;�;��<�<��V�,�,�D�� �� �~� &�)�)�)�"�4�(�(�(�(�(�(�)���s�AA� A;�:A;c�d� d|vrt�d|��}d|vr|�dd��}d|vr|�dd��}d|vr|�dd��}d |vr|�d d ��}|S#ttf$rt |��YdSwxYw) Nrrrrr r!�"�&quot;� z&#10;r"rs r�_escape_attribr,Rs���)� �$�;�;��:�:�g�t�,�,�D� �$�;�;��<�<��V�,�,�D� �$�;�;��<�<��V�,�,�D� �4�<�<��<�<��h�/�/�D� �4�<�<��<�<��g�.�.�D�� �� �~� &�)�)�)�"�4�(�(�(�(�(�(�)���s�BB � B/�.B/c�0� d|vrt�d|��}d|vr|�dd��}d|vr|�dd��}d|vr|�dd��}|S#ttf$rt |��YdSwxYw) Nrrrrr r!r)r*r"rs r�_escape_attrib_htmlr.es��� )� �$�;�;��:�:�g�t�,�,�D� �$�;�;��<�<��V�,�,�D� �$�;�;��<�<��V�,�,�D� �4�<�<��<�<��h�/�/�D�� �� �~� &�)�)�)�"�4�(�(�(�(�(�(�)���s�A.A1�1 B�B�write�Callable[[str], None]�elemrr�Literal['html', 'xhtml']�Nonec�N�|j}|j}|tur|dt|��z���nJ|tur|dt|��z���n$|�2|r|t|����|D]}t |||����n�d}t |t��rI|jdd�dkr'|jdd��dd��\}}ntd���|d|z��|� ��}|r�t|��}|D]�\}} t |t��r|j}t | t��r| j} nt| ��} || kr|dkr|d | z���h|d � || ������|r|d t|��z��|d kr'|���t vr |d ��n�|d��|r:|���dvr ||��n|t|����|D]}t |||���|���t vr|d|zdz��|jr|t|j����dSdS)Nz <!--%s-->z<?%s?>��{�}z QName objects must define a tag.r�htmlz %sz {}="{}"z xmlns="%s"�xhtmlz />r )�script�stylez</)�tagrrr'r�_serialize_html� isinstancer�split� ValueError�items�sortedr.rr,�lowerr �tail) r/r1rr<r�e� namespace_urirA�k�vs rr=r=vs�� �(�C� �9�D� �g�~�~� ��k�M�$�/�/�/�0�0�0�0� �%� %� %� ��h��t�,�,�,�-�-�-�-� �� � '� �E�-��%�%� &� &� &�� .� .�A� �E�1�f� -� -� -� -� .�� � �c�5� !� !� E��x����|�s�"�"�%(�X�a�b�b�\�%7�%7��Q�%?�%?�"� �s�s� �!C�D�D�D� ��c�C�i����� � � � �� � 3��5�M�M�E�� 3� 3���1��a��'�'����A��a��'�'�/���A�A�+�A�.�.�A���6�6�f��.�.��E�%�!�)�$�$�$�$��E�*�+�+�A�q�1�1�2�2�2�2� � C� �E�-�>�-�#@�#@�A� B� B� B� �W� � ������ �!:�!:� �E�%�L�L�L�L� �E�#�J�J�J�� /��9�9�;�;�"5�5�5��E�$�K�K�K�K��E�-��-�-�.�.�.�� 2� 2����q�&�1�1�1�1��y�y�{�{�*�,�,���d�S�j�3�&�'�'�'� �y�(� ��m�D�I�&�&�'�'�'�'�'�(�(rr8�rootc�h�|�J�g}|j}t|||��d�|��S)N�)�appendr=�join)rIr�datar/s r� _write_htmlrO�s<�� � � � ��D� �K�E��E�4��(�(�(� �7�7�4�=�=�r�elementc�b�tt|�����d���S)z: Serialize element and its children to a string of HTML5. r8�r�rOr�getroot�rPs rr r �s)�� �{�7�+�+�3�3�5�5�f� E� E� E�Erc�b�tt|�����d���S)z: Serialize element and its children to a string of XHTML. r9rRrSrUs rrr�s)�� �{�7�+�+�3�3�5�5�g� F� F� F�Fr)rrrr )rr)rrrr)r/r0r1rrr2rr3)r8)rIrrr2rr)rPrrr)�__doc__� __future__r�xml.etree.ElementTreerrrrrr �re�typingr r r �__all__�compile�Ir#rr'r,r.r=rOr r�rr�<module>r`sb��J��#�"�"�"�"�"�7�7�7�7�7�7�R�R�R�R�R�R�R�R�R�R�R�R�R�R� � � � �.�.�.�.�.�.�.�.�.�.� �.� /�� ���@�"�$� G� G�� � � � � )�)�)�)�$)�)�)�)�&)�)�)�)�"6(�6(�6(�6(�r�����F�F�F�F� G�G�G�G�G�Gr
Memory