§
    kÃ¿a9
  ã                   óÆ   — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
Z
ddlZdgZ G d„ de	¦  «        Z G d	„ d
e¦  «        Zd„ Zd„ Zd„ Zd„ Z ej        de¦  «         dS )z}
N-Triples RDF graph serializer for RDFLib.
See <http://www.w3.org/TR/rdf-testcases/#ntriples> for details about the
format.
é    )ÚIOÚOptional)ÚGraph)ÚLiteral)Ú
SerializerNÚNTSerializerc                   ó\   — e Zd ZdZdefd„Z	 	 d
dee         dee	         dee	         fd	„Z
dS )r   z3
    Serializes RDF graphs to NTriples format.
    Ústorec                 ó0   — t          j        | |¦  «         d S ©N©r   Ú__init__©Úselfr
   s     ú?/usr/lib/python3/dist-packages/rdflib/plugins/serializers/nt.pyr   zNTSerializer.__init__   ó   € ÝÔ˜D %Ñ(Ô(Ð(Ð(Ð(ó    Núutf-8ÚstreamÚbaseÚencodingc                 ó6  — |�t          j        d¦  «         |dk    rt          j        d|› �¦  «         | j        D ]6}|                     t	          |¦  «                             ¦   «         ¦  «         Œ7|                     d                     ¦   «         ¦  «         d S )Nz#NTSerializer does not support base.r   z=NTSerializer always uses UTF-8 encoding. Given encoding was: ú
)ÚwarningsÚwarnr
   ÚwriteÚ_nt_rowÚencode)r   r   r   r   ÚargsÚtriples         r   Ú	serializezNTSerializer.serialize   s¦   € ð ÐÝŒMÐ?Ñ@Ô@Ð@Ø�wÒÐÝŒMð2Ø'/ð2ð 2ñô ð ð
 ”jð 	3ð 	3ˆFØ�LŠL� ™œ×/Ò/Ñ1Ô1Ñ2Ô2Ð2Ð2Ø�Š�T—[’[‘]”]Ñ#Ô#Ð#Ð#Ð#r   )Nr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Úbytesr   Ústrr!   © r   r   r   r      s‚   € € € € € ðð ð)˜eð )ð )ð )ð )ð #Ø")ð	$ð $à�5”	ð$ð �sŒmð$ð ˜3”-ð	$ð $ð $ð $ð $ð $r   c                   ó   — e Zd ZdZdefd„ZdS )ÚNT11Serializerze
    Serializes RDF graphs to RDF 1.1 NTriples format.

    Exactly like nt - only utf8 encoded.
    r
   c                 ó0   — t          j        | |¦  «         d S r   r   r   s     r   r   zNT11Serializer.__init__5   r   r   N)r"   r#   r$   r%   r   r   r(   r   r   r*   r*   .   s9   € € € € € ðð ð)˜eð )ð )ð )ð )ð )ð )r   r*   c                 óz  — t          | d         t          ¦  «        rN| d                              ¦   «         ›d| d                              ¦   «         ›dt          | d         ¦  «        ›d�S | d                              ¦   «         ›d| d                              ¦   «         ›d| d                              ¦   «         ›d�S )Né   r   ú é   z .
)Ú
isinstancer   Ún3Ú_quoteLiteral)r    s    r   r   r   9   s�   € Ý�&˜”)�WÑ%Ô%ð Qà�1ŒI�LŠL‰NŒNˆNˆNØ�1ŒI�LŠL‰NŒNˆNˆNÝ˜& œ)Ñ$Ô$Ð$Ð$ð
ð 	
ð "(¨¤§¢¡¤  °¸´·²±´°°ÀÈÄÇÂÁÄÀÀÐPÐPr   c                 ó¤   — t          | ¦  «        }| j        r"| j        rt          d¦  «        ‚|›d| j        ›�S | j        r|›d| j        ›d�S d|z  S )z0
    a simpler version of term.Literal.n3()
    z"Literal has datatype AND language!ú@z^^<ú>z%s)Ú_quote_encodeÚlanguageÚdatatypeÚ	Exception)Úl_Úencodeds     r   r2   r2   D   sq   € õ
 ˜BÑÔ€Gà	„{ð ØŒ;ð 	BÝÐ@ÑAÔAÐAØ!˜'˜' 2¤; ;Ð/Ð/Ø	Œð Ø$˜W˜W b¤k k kÐ2Ð2à�g‰~Ðr   c                 ó¬   — d|                       dd¦  «                              dd¦  «                              dd¦  «                              dd	¦  «        z  S )
Nz"%s"ú\z\\r   z\nú"z\"úz\r)Úreplace)r:   s    r   r6   r6   U   sS   € Ø�B—J’J˜t VÑ,Ô,×4Ò4°T¸5ÑAÔA×IÒIØˆUñô ç‚gˆd�EÑÔñð r   c                 óŒ   ‡— d„ Š| j         | j        | j        …         }d                     ˆfd„|D ¦   «         ¦  «        | j        fS )zu
    Do unicode char replaces as defined in https://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntrip_strings
    c                 ó>   — t          | ¦  «        } | dk    rdnd}|| z  S )Niÿÿ  z\u%04Xz\U%08X)Úord)ÚcÚfmts     r   Ú_replace_singlez3_nt_unicode_error_resolver.<locals>._replace_single`   s'   € Ý�‰FŒFˆØ š;˜;ˆiˆi¨IˆØ�Q‰wˆr   Ú c              3   ó.   •K  — | ]} ‰|¦  «        V — Œd S r   r(   )Ú.0rD   rF   s     €r   ú	<genexpr>z-_nt_unicode_error_resolver.<locals>.<genexpr>f   s-   øè è € Ð6Ð6¨!�?�? 1Ñ%Ô%Ð6Ð6Ð6Ð6Ð6Ð6r   )ÚobjectÚstartÚendÚjoin)ÚerrÚstringrF   s     @r   Ú_nt_unicode_error_resolverrQ   [   sW   ø€ ð
ð ð ð
 ŒZ˜œ	 C¤GÐ+Ô,€FØ�7Š7Ð6Ð6Ð6Ð6¨vÐ6Ñ6Ô6Ñ6Ô6¸¼Ð?Ð?r   Ú_rdflib_nt_escape)r%   Útypingr   r   Úrdflib.graphr   Úrdflib.termr   Úrdflib.serializerr   r   ÚcodecsÚ__all__r   r*   r   r2   r6   rQ   Úregister_errorr(   r   r   ú<module>rZ      s.  ððð ð
  Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (à €€€Ø €€€àÐ
€ð$ð $ð $ð $ð $�:ñ $ô $ð $ð8)ð )ð )ð )ð )�\ñ )ô )ð )ðQð Qð Qðð ð ð"ð ð ð@ð @ð @ð €Ô Ð)Ð+EÑ FÔ FÐ FÐ FÐ Fr   