
    ie                        d dl mZ d dlmZmZm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mZmZmZ dgZ e
d	      Z e
d
      Z G d de      Zy)    )annotations)IOAnyOptional)ConjunctiveGraphGraph)	Namespace)	XMLWriter)
Serializer)BNodeLiteralURIRefTriXSerializerz&http://www.w3.org/2004/03/trix/trix-1/z$http://www.w3.org/XML/1998/namespacec                  L     e Zd Zd fdZ	 	 d	 	 	 	 	 	 	 	 	 ddZd Zd Z xZS )r   c                Z    t         t        |   |       |j                  st	        d      y )Nz<TriX serialization only makes sense for context-aware stores)superr   __init__context_aware	Exception)selfstore	__class__s     NC:\Projects\mas-dev\.venv\Lib\site-packages\rdflib/plugins/serializers/trix.pyr   zTriXSerializer.__init__   s0    nd,U3""N  #    c                ,   | j                   j                  }t        |||dt        i      | _        | j                  j                  t        d          |,| j                   j                  | j                   j                  }|| j                  j                  d|       | j                  j                          t        | j                   t              r1| j                   j                         D ]  }| j                  |        nWt        | j                   t              r| j                  | j                          n!t        dt        | j                                | j                  j!                          |j#                  dj%                  d             y )N )extra_nsTriX(http://www.w3.org/XML/1998/namespacebasezUnknown graph type: 
zlatin-1)r   namespace_managerr
   TRIXNSwriterpushbase	attribute
namespaces
isinstancer   contexts_writeGraphr   r   typepopwriteencode)r   streamr%   encodingkwargsnmsubgraphs          r   	serializezTriXSerializer.serialize   s    ZZ))HF|L(<DJJOO7::??DKK!!"LdS djj"23 JJ//1  * 2

E*TZZ(24

3C2DEFFT[[+,r   c                   | j                   j                  t        d          |j                  r&| j                   j	                  d|j                         t        |j                  t              r7| j                   j                  t        d   t        |j                               |j                  d      D ]  }| j                  |        | j                   j                          y )Ngraphr   uricontent)NNN)r#   r$   r"   r%   r&   r(   
identifierr   elementstrtriples_writeTripler,   )r   r6   triples      r   r*   zTriXSerializer._writeGraph8   s    )::KK!!:EJJ e&&/KKus5;K;K7LMmm$67Ff% 8r   c           	     `   | j                   j                  t        d          |D ]l  }t        |t              r.| j                   j                  t        d   t        |             Bt        |t              r.| j                   j                  t        d   t        |             t        |t              s|j                  rK| j                   j                  t        d   t        |      t        d   t        |j                        i       |j                  rL| j                   j                  t        d   t        |      t        d	   t        |j                        i       @| j                   j                  t        d   t        |             o | j                   j                          y )
Nr?   r7   r8   idtypedLiteraldatatype)r9   
attributesplainLiterallang)r#   r$   r"   r(   r   r;   r<   r   r   rC   languageXMLNSr,   )r   r?   	components      r   r>   zTriXSerializer._writeTripleE   s@   )*I)V,##F5M3y>#JIu-##F4L#i.#IIw/%%KK''~. #I$*:$6I<N<N8O#P ( 
 ''KK''~. #I$)&M3y7I7I3J#K (  KK''~(>I'W'  ( 	r   )r   r   )NN)
r/   z	IO[bytes]r%   Optional[str]r0   rJ   r1   r   returnNone)__name__
__module____qualname__r   r4   r*   r>   __classcell__)r   s   @r   r   r      sO     #"&	-- -  	-
 - 
-<r   N)
__future__r   typingr   r   r   rdflib.graphr   r   rdflib.namespacer	   $rdflib.plugins.serializers.xmlwriterr
   rdflib.serializerr   rdflib.termr   r   r   __all__r"   rH   r    r   r   <module>rZ      sN    " $ $ 0 & : ( . .
 
;	<89IZ Ir   