
    Pi                        d Z ddlmZ ddlmZmZmZmZmZm	Z	m
Z
mZ ddlmZmZ ddlmZ ddlmZmZ erddlmZmZ dgZ G d	 de          Zd
S )zb
Trig RDF graph serializer for RDFLib.
See <http://www.w3.org/TR/trig/> for syntax specification.
    )annotations)IOTYPE_CHECKINGAnyDictListOptionalTupleUnion)ConjunctiveGraphGraph)TurtleSerializer)BNodeNode)_ContextType_SubjectTypeTrigSerializerc                  P     e Zd ZdZdZdZd fdZdd	Zd fd
Z	 	 	 dddZ	 xZ
S )r   zTriG RDF graph serializer.trigz    storeUnion[Graph, ConjunctiveGraph]c                   |  |j         r|t          rt          |t                    sJ t	          |                                          | _        |j        j        | _        |j        r| j                            |j                   n|g| _        d | _        t          t          |                               |           d S N)context_awarer   
isinstancer   listcontextsdefault_context
identifierappendsuperr   __init__)selfr   	__class__s     s/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/rdflib/plugins/serializers/trig.pyr"   zTrigSerializer.__init__   s    , 		( ;!%)9::::: !1!122DM#(#8#CD $ <$$U%:;;;"GDM#'D nd##,,U33333    returnNonec                p   | j         D ]}t          |          dk    r|| _        |                     |j        d           i | _        |D ]}|                     |           | j                                        D ]}| j        |xx         dz  cc<   | 	                                | j        f| j
        |<   d S )Nr   F   )r   lenr   getQNamer   	_subjectspreprocessTriplekeys_referencesorderSubjects	_contexts)r#   contexttriplesubjects       r%   
preprocesszTrigSerializer.preprocess)   s    } 	M 	MG7||q   DJMM',e444DN! . .%%f---->..00 / / )))Q.))))'+'9'9';';T^&LDN7##	M 	Mr&   c                d    t          t          |                                            i | _        d S r   )r!   r   resetr2   )r#   r$   s    r%   r8   zTrigSerializer.reset;   s/    nd##))+++  	r&   Nstream	IO[bytes]baseOptional[str]encodingspaciousOptional[bool]kwargsr   c                   |                                   || _        ||| _        n| j        j        | j        j        | _        ||| _        |                                  |                                  d}| j                                        D ]z\  }\  }}	|si | _	        || _        |	| _
        | j        r;|j        | j        k    r+|                     |                                 dz              nt          |j        t                     r|j                                        }
n6|                     |j        d          }
|
|j                                        }
|                     |                                 d|
z  z              | xj        dz  c_        |D ]H}|                     |          r|rd}|                     |          r|s|                     d           I| xj        dz  c_        |                     d           ||                                  |                    d                    d                     d S )	NTz
{Fz
%s {r*   
z}
zlatin-1)r8   r9   r;   r   	_spaciousr6   startDocumentr2   items_serializedr-   r   r   writeindentr   r   n3r,   depthisDone	statementendDocumentencode)r#   r9   r;   r=   r>   r@   	firstTimer   ordered_subjectssubjectsirir5   s               r%   	serializezTrigSerializer.serializeB   sA    	

DIIZ_(
DI%DN	37>3G3G3I3I 	 	/E/$h# !DDJ%DN# ;(8D<P(P(P

4;;==501111 e.66 4*--//CC --(8%@@C{#.1133

4;;==8c>9:::JJ!OJJ+ % %;;w''  & %I>>'** %9 %JJt$$$JJ!OJJJJuT[[++,,,,,r&   )r   r   )r'   r(   )NNN)r9   r:   r;   r<   r=   r<   r>   r?   r@   r   r'   r(   )__name__
__module____qualname____doc__
short_nameindentStringr"   r6   r8   rS   __classcell__)r$   s   @r%   r   r      s        $$JL4 4 4 4 4 4M M M M$      #"&#'9- 9- 9- 9- 9- 9- 9- 9- 9-r&   N)rW   
__future__r   typingr   r   r   r   r   r	   r
   r   rdflib.graphr   r   !rdflib.plugins.serializers.turtler   rdflib.termr   r   r   r   __all__r    r&   r%   <module>rb      s   
 # " " " " " M M M M M M M M M M M M M M M M M M M M 0 0 0 0 0 0 0 0 > > > > > > # # # # # # # # 877777777
g- g- g- g- g-% g- g- g- g- g-r&   