o
    k¨Êhn  ã                   @   s   d dl Z d dlZejd  dkZd dlmZ zd dlmZ W n e	y*   d dlZY nw zd dl
mZ W n e	yB   d dlmZ Y nw zd dlmZ W n e	yZ   d dlmZ Y nw zeZW n eyj   eZY nw zeZW n ey„   eZd#dd„Zd#d	d
„ZY nw d#dd„Zd#dd
„Zzd dlmZ W n e	y£   efZY nw eddƒZeddƒZdddddœZdddddœZdd„ Zdd„ Zdadd „ Zd!d"„ ZdS )$é    Né   )ÚQName)Ú
HTMLParser)ÚStringIOÚlatin1c                 C   ó
   t | |ƒS ©N)Úbytes©ÚxÚencoding© r   ú?/var/www/html/env/lib/python3.10/site-packages/meld3/_compat.pyÚ_b    ó   
r   c                 C   s   t | tƒr| S t| |ƒS r   )Ú
isinstanceÚstrr
   r   r   r   Ú_u#   s   

r   c                 C   s   | S r   r   r
   r   r   r   r   *   s   c                 C   r   r   )Úunicoder
   r   r   r   r   -   r   )ÚStringTypesu   Ã‚Â€zutf-8u   Ã¯Â¿Â¿z&amp;z&lt;z&gt;z&quot;)ú&ú<ú>ú"ÚxmlÚhtmlÚrdfÚwsdl)z$http://www.w3.org/XML/1998/namespacezhttp://www.w3.org/1999/xhtmlz+http://www.w3.org/1999/02/22-rdf-syntax-ns#z http://schemas.xmlsoap.org/wsdl/c                 C   s$   z|   |¡W S  ty   |  Y S w r   )ÚencodeÚAttributeError)Úsr   r   r   r   Ú_encodeP   s
   ÿr!   c                 C   s   t d| t| ƒjf ƒ‚)Nzcannot serialize %r (type %s))Ú	TypeErrorÚtypeÚ__name__)Útextr   r   r   Ú_raise_serialization_errorV   s   ÿr&   c                 C   s`   t d u rdt d t d }t |¡a dd„ }z
tt  || ¡dƒW S  ty/   t| ƒ Y d S w )Nz[&<>\"ú-z]+c                 S   sH   g }|j }|  ¡ D ]}t |¡}|d u rdt|ƒ }||ƒ q	d |¡S )Nz&#%d;Ú )ÚappendÚgroupÚ_escape_mapÚgetÚordÚjoin)ÚmÚoutr)   Úcharr%   r   r   r   Ú_escape_entitiesd   s   


z(_encode_entity.<locals>._escape_entitiesÚascii)	Ú_patternÚ_NON_ASCII_MINÚ_NON_ASCII_MAXÚreÚcompiler!   Úsubr"   r&   )r%   Ú_ptxtr2   r   r   r   Ú_encode_entity\   s   
	ÿr;   c                 C   s�   t | tƒr| j} | dd …  dd¡\}} | |¡}|d u r>t |¡}|d u r,dt|ƒ }|||< |dkr7d }n	d| |f}nd }d|| f |fS )Né   Ú}zns%dr   zxmlns:%sz%s:%s)r   r   r%   Úsplitr,   Ú_namespace_mapÚlen)ÚtagÚ
namespacesÚnamespace_uriÚprefixÚxmlnsr   r   r   Úfixtagr   s   


rF   )r   ) r7   ÚsysÚversion_infoÚPY3Úxml.etree.ElementTreer   Úhtml.entitiesÚentitiesÚhtmlentitydefsÚImportErrorÚhtml.parserr   r   Úior	   Ú	NameErrorr   ÚunichrÚchrr   r   Útypesr   r5   r6   r+   r?   r!   r&   r4   r;   rF   r   r   r   r   Ú<module>   sn    ÿÿÿÿ
û


ÿ

ü	û