
    01i"                       S SK Jr  S SKrS SKrS SKJrJrJrJrJ	r	J
r
  S SKJr  S SKJr  S SKJr  \(       a  S SKJr   S/r " S	 S\5      r " S
 S\5      rSS jrSS jrSS jr    SS jr\R2                  " S\5        g)    )annotationsN)IOTYPE_CHECKINGAnyOptionalTupleUnion)Graph)
Serializer)Literal)_TripleTypeNTSerializerc                  F    \ rS rSrSrSS jr  S         S	S jjrSrg)
r      z)Serializes RDF graphs to NTriples format.c                0    [         R                  " X5        g Nr   __init__selfstores     W/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/plugins/serializers/nt.pyr   NTSerializer.__init__       D(    Nc                    Ub  [         R                  " S5        US:w  a  [         R                  " SU 35        U R                   H+  nUR                  [	        U5      R                  5       5        M-     g )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   	serialize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____firstlineno____doc__r   r(   __static_attributes__r*   r   r   r   r      sL    3) #")	33 3  	3
 3 
3 3r   c                  "    \ rS rSrSrSS jrSrg)NT11Serializer0   zXSerializes RDF graphs to RDF 1.1 NTriples format.

Exactly like nt - only utf8 encoded.
c                0    [         R                  " X5        g r   r   r   s     r   r   NT11Serializer.__init__6   r   r   r*   Nr+   )r/   r0   r1   r2   r3   r   r4   r*   r   r   r6   r6   0   s    
)r   r6   c                ,   [        U S   [        5      (       a<  U S   R                  5       < SU S   R                  5       < S[        U S   5      < S3$ U S   R                  5       < SU S   R                  5       < SU S   R                  5       < S3$ )N   r       z .
)
isinstancer   n3_quoteLiteral)r'   s    r   r!   r!   :   sp    &)W%%1ILLN1ILLN&)$
 	
 "(PPr   c                    [        U 5      nU R                  (       a/  U R                  (       a  [        S5      eU< SU R                  < 3$ U R                  (       a  U< SU R                  < S3$ SU-  $ )z&A simpler version of term.Literal.n3()z"Literal has datatype AND language!@z^^<>z%s)_quote_encodelanguagedatatype	Exception)l_encodeds     r   r@   r@   E   sW     BG	{{;;@AA!2;;//	$bkk22g~r   c                    SU R                  SS5      R                  SS5      R                  SS5      R                  SS	5      -  $ )
Nz"%s"\z\\
z\n"z\"z\r)replace)rH   s    r   rD   rD   T   sE    BJJtV,44T5AIIUgdE r   c                   ^ S mU R                   U R                  U R                   nSR                  U4S jU 5       5      U R                  4$ )zm
Do unicode char replaces as defined in https://www.w3.org/TR/2004/REC-rdf-testcases-20040210/#ntrip_strings
c                4    [        U 5      n U S::  a  SOSnX-  $ )Ni  z\u%04Xz\U%08X)ord)cfmts     r   _replace_single3_nt_unicode_error_resolver.<locals>._replace_singlea   s    F;iIwr    c              3  4   >#    U  H  nT" U5      v   M     g 7fr   r*   ).0rS   rU   s     r   	<genexpr>-_nt_unicode_error_resolver.<locals>.<genexpr>k   s     6v!?1%%vs   )objectstartendjoin)errstringrU   s     @r   _nt_unicode_error_resolverrb   Z   s@     ZZ		CGG,F776v66??r   _rdflib_nt_escape)r'   r   r-   str)rH   r   r-   rd   )rH   rd   r-   rd   )r`   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   r6   r!   r@   rD   rb   register_errorr*   r   r   <module>rn      s    "   A A  ( ( 
3: 32)\ )Q@	@"@(   )+E Fr   