
    i;                        d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZ erd dlmZ 	 dgZ G d	 de      Z G d
 de      ZddZddZddZ	 	 	 	 ddZ ej2                  de       y)    )annotationsN)IOTYPE_CHECKINGAnyOptionalTupleUnion)Graph)
Serializer)Literal)_TripleTypeNTSerializerc                  8    e Zd ZdZddZ	 	 d	 	 	 	 	 	 	 	 	 ddZy)r   z3
    Serializes RDF graphs to NTriples format.
    c                0    t        j                  | |       y Nr   __init__selfstores     LC:\Projects\mas-dev\.venv\Lib\site-packages\rdflib/plugins/serializers/nt.pyr   zNTSerializer.__init__       D%(    Nc                    |t        j                  d       |dk7  rt        j                  d|        | j                  D ]*  }|j                  t	        |      j                                , y )Nz#NTSerializer does not support base.utf-8z=NTSerializer always uses UTF-8 encoding. Given encoding was: )warningswarnr   write_nt_rowencode)r   streambaseencodingkwargstriples         r   	serializezNTSerializer.serialize   sc     MM?@wMM''/j2
 jjFLL//12 !r   r   r
   )Nr   )
r!   z	IO[bytes]r"   Optional[str]r#   r(   r$   r   returnNone)__name__
__module____qualname____doc__r   r&    r   r   r   r      sI    ) #")	33 3  	3
 3 
3r   c                      e Zd ZdZddZy)NT11Serializerze
    Serializes RDF graphs to RDF 1.1 NTriples format.

    Exactly like nt - only utf8 encoded.
    c                0    t        j                  | |       y r   r   r   s     r   r   zNT11Serializer.__init__9   r   r   Nr'   )r+   r,   r-   r.   r   r/   r   r   r1   r1   2   s    )r   r1   c                   t        | d   t              r9| d   j                         d| d   j                         dt        | d         dS | d   j                         d| d   j                         d| d   j                         dS )N   r       z .
)
isinstancer   n3_quoteLiteral)r%   s    r   r   r   =   sm    &)W%1ILLN1ILLN&)$
 	
 "(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   r9   r9   H   sW    
 BG	{{;;@AA!2;;//	$bkk22g~r   c                    d| j                  dd      j                  dd      j                  dd      j                  dd	      z  S )
Nz"%s"\z\\
z\n"z\"z\r)replace)rA   s    r   r=   r=   Y   sE    BJJtV,44T5AIIUgdE r   c                    d | j                   | j                  | j                   }dj                  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                4    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_singlef   s!    F;iIQwr    c              3  .   K   | ]  } |        y wr   r/   ).0rL   rN   s     r   	<genexpr>z-_nt_unicode_error_resolver.<locals>.<genexpr>p   s     6v!?1%vs   )objectstartendjoin)errstringrN   s     @r   _nt_unicode_error_resolverrY   _   s@     ZZ		CGG,F776v66??r   _rdflib_nt_escape)r%   r   r)   str)rA   r   r)   r[   )rA   r[   r)   r[   )rW   UnicodeErrorr)   zTuple[Union[str, bytes], int])
__future__r   codecsr   typingr   r   r   r   r   r	   rdflib.graphr
   rdflib.serializerr   rdflib.termr   r   __all__r   r1   r   r9   r=   rY   register_errorr/   r   r   <module>re      s    "   A A  ( ( 
3: 36)\ )Q"@	@"@(   )+E Fr   