§
    kÃ¿a«  ã                   óˆ  — d Z ddlZddlZddlZddlZej        r
ddlmc m	Z n	 ddl
mZ n# e$ r ddlmc m	Z Y nw xY w	 ej        Zn# e$ r ddlmc m	Z d„ ZY nw xY wdd„Zd„ Zd„ ZeZd	„ Z ej        d
¦  «        Zd„ ZdZ	  ed¦  «         n# e$ r dZY nw xY werd„ Zd„ Zd„ Z	 ddlmZm Z  dS #  ddl!mZm Z  Y dS xY w)zn
Utility functions and objects to ease Python 2/3 compatibility,
and different versions of support libraries.
é    N)Úetreec                 ó$   — | t           j        |<   d S ©N)ÚetreenativeÚ_namespace_map)ÚprefixÚuris     ú//usr/lib/python3/dist-packages/rdflib/compat.pyÚetree_register_namespacer      s   € Ø*0�Ô" 3Ñ'Ð'Ð'ó    úutf-8c                 óZ   — t          | t          ¦  «        r|                      |¦  «        S | S r   )Ú
isinstanceÚstrÚencode)ÚsÚencs     r
   Ú
cast_bytesr      s)   € Ý�!•SÑÔð Ø�xŠx˜‰}Œ}ÐØ€Hr   c                 ó<   —  t          j        d¦  «        | ¦  «        S )NÚascii)ÚcodecsÚ	getreader)Ústreams    r
   r   r   $   s   € Ø$�6Ô˜GÑ$Ô$ VÑ,Ô,Ð,r   c                  ó   — t          | ddi|¤ŽS )NÚmodeÚrb)Úopen)ÚargsÚkwargss     r
   Úbopenr    (   s   € Ý�Ð+˜DÐ+ FÐ+Ð+Ð+r   c                 ó&   — | dk     rdS | dk    rdS dS )Nr   éÿÿÿÿé   © )Úns    r
   Úsignr&   /   s#   € Øˆ1‚u€uØˆrØˆ1‚u€uØˆqØˆ1r   z%(\\u[0-9A-Fa-f]{4}|\\U[0-9A-Fa-f]{8})c                 ó:   — t                                d„ | ¦  «        S )Nc                 ór   — t          t          |                      d¦  «        dd …         d¦  «        ¦  «        S ©Nr   é   é   ©ÚchrÚintÚgroup©Úms    r
   ú<lambda>z _unicodeExpand.<locals>.<lambda>;   s*   € ­­S°·²¸±´¸A¸B¸B´ÀÑ-DÔ-DÑ)EÔ)E€ r   )Úr_unicodeEscapeÚsub©r   s    r
   Ú_unicodeExpandr6   :   s   € Ý×ÒÐEÐEÀqÑIÔIÐIr   Fiÿÿ Tc                 óÂ   — 	 t                                d„ | ¦  «        S # t          $ r6 t          j        d| z  ¦  «         t                                d„ | ¦  «        cY S w xY w)Nc                 ór   — t          t          |                      d¦  «        dd …         d¦  «        ¦  «        S r)   r,   r0   s    r
   r2   z _unicodeExpand.<locals>.<lambda>H   s*   € µµS¸¿ºÀ¹¼ÀAÀBÀB¼ÈÑ5LÔ5LÑ1MÔ1M€ r   zžEncountered a unicode char > 0xFFFF in a narrow python build. Trying to degrade gracefully, but this can cause problems later when working with the string:
%sc                 óR   — t          j        |                      d¦  «        d¦  «        S )Nr   Úunicode_escape)r   Údecoder/   r0   s    r
   r2   z _unicodeExpand.<locals>.<lambda>P   s   € �&œ-¨¯ª°©
¬
Ð4DÑEÔE€ r   )r3   r4   Ú
ValueErrorÚwarningsÚwarnr5   s    r
   r6   r6   F   s‰   € ð
	Ý"×&Ò&Ð'MÐ'MÈqÑQÔQÐQøÝð 	ð 	ð 	ÝŒMð:à<=ñ>ñô ð õ
 #×&Ò&ØEÐEÀqñô ð ð ð ð	øøøs   ‚ ž=AÁAc                 óf  — |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       d	d
¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } | S )z8
    s is byte-string - replace \ escapes in string
    ú\tú	ú\nú
ú\rúú\búú\fúú\"ú"ú\'ú'ú\\ú\)Úreplacer5   s    r
   ÚdecodeStringEscaperQ   T   s¡   € ð
 	
�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�&˜$ÑÔ€Aà€Hr   c                 ó�  — d| vr| S |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       dd	¦  «        } |                       d
d¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } t          | ¦  «        } | S )zQ
    s is a unicode string
    replace ``\n`` and ``\u00AC`` unicode escapes
    rO   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   )rP   r6   r5   s    r
   ÚdecodeUnicodeEscaperS   f   s¾   € ð
 �1€}€}ð ˆà	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�%˜ÑÔ€AØ	�	Š	�&˜$ÑÔ€Aå�qÑÔ€Aà€Hr   )ÚMappingÚMutableMapping)r   )"Ú__doc__Úrer   r=   ÚtypingÚtÚTYPE_CHECKINGÚxml.etree.ElementTreer   ÚElementTreeÚlxmlÚImportErrorÚregister_namespacer   ÚAttributeErrorr   r   r   r    r.   Ú	long_typer&   Úcompiler3   r6   Únarrow_buildr-   r<   rQ   rS   Úcollections.abcrT   rU   Úcollectionsr$   r   r
   ú<module>rf      sG  ððð ð
 
€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð à„?ð .Ø)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ð)ð.ØÐÐÐÐÐÐøØð .ð .ð .Ø-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð.øøøð1Ø$Ô7ÐÐøØð 1ð 1ð 1à/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ð/ð1ð 1ð 1ð 1ð 1ð	1øøøðð ð ð ð-ð -ð -ð,ð ,ð ,ð €	ðð ð ð �"”*ÐEÑFÔF€ðJð Jð Jð €ðØ€Cˆ�M„M€M€MøØð ð ð Ø€L€L€Lðøøøð ð ðð ð ðð ð ð$ð ð ð24Ø7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7øð4Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øøøs<   ¥, ¬=¼=ÁA	 Á	AÁAÂB ÂBÂBÂ*B4 Â4
C