
    01i                        S r SSKJr  SSKJrJrJrJrJrJ	r	J
r
Jr  SSKJrJr  SSKJr  SSKJrJr  \(       a  SSKJrJr  S/r " S	 S\5      rg
)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                  |   ^  \ rS rSrSrSrSrS
U 4S jjrSS jrSU 4S jjr	   S           SS jjr
S	rU =r$ )r      zTriG RDF graph serializer.trigz    c                  > U   UR                   (       a  [        (       a  [        U[        5      (       d   e[	        UR                  5       5      U l        UR                  R                  U l        UR                  (       a%  U R
                  R                  UR                  5        OU/U l        S U l        [        [        U ]/  U5        g N)context_awarer   
isinstancer   listcontextsdefault_context
identifierappendsuperr   __init__)selfstore	__class__s     Y/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/plugins/serializers/trig.pyr!   TrigSerializer.__init__   s    }!%)9:::: !12DM#(#8#8#C#CD $$$$U%:%:;"GDM#'D nd,U3    c                   U R                    H  n[        U5      S:X  a  M  Xl        U R                  UR                  S5        0 U l        U H  nU R                  U5        M     U R
                  R                  5        H  nU R                  U==   S-  ss'   M     U R                  5       U R
                  4U R                  U'   M     g )Nr   F   )r   lenr#   	get_pnamer   	_subjectspreprocessTriplekeys_referencesorderSubjects	_contexts)r"   contexttriplesubjects       r%   
preprocessTrigSerializer.preprocess)   s    }}G7|q  JNN7--u5DN!%%f- "  >>..0  )Q.) 1 (,'9'9';T^^&LDNN7# %r'   c                8   > [         [        U ]  5         0 U l        g r   )r    r   resetr1   )r"   r$   s    r%   r8   TrigSerializer.reset;   s    nd)+  	r'   c                   U R                  5         Xl        Ub  X l        O2U R                  R                  b  U R                  R                  U l        Ub  X@l        U R                  5         U R                  5         SnU R                  R                  5        GH  u  nu  pU(       d  M  0 U l	        Xpl        Xl
        U R                  (       a=  UR                  U R                  :X  a#  U R                  U R                  5       S-   5        O[        UR                  [         5      (       a  UR                  R#                  5       n
O9U R%                  UR                  S5      n
U
c  UR                  R#                  5       n
U R                  U R                  5       SU
-  -   5        U =R&                  S-  sl        U HV  nU R)                  U5      (       a  M  U(       a  SnU R+                  U5      (       d  M<  U(       a  ME  U R                  S5        MX     U =R&                  S-  sl        U R                  S5        GM     U R-                  5         UR                  SR/                  S5      5        g )	NTz
{Fz
%s {r)   
z}
zlatin-1)r8   streambaser#   	_spaciousr5   startDocumentr1   items_serializedr,   r   r   writeindentr   r   n3r+   depthisDone	statementendDocumentencode)r"   r<   r=   encodingspaciouskwargs	firstTimer#   ordered_subjectssubjectsirir4   s               r%   	serializeTrigSerializer.serializeB   s    	

IZZ__(

DI%N	37>>3G3G3I/E/$#!DJ%N##(8(8D<P<P(P

4;;=501 e..66**--/C ..)9)95AC{#..113

4;;=8c>9:JJ!OJ+;;w'' %I>>'**99JJt$ , JJ!OJJJu= 4J@ 	T[[+,r'   )	r1   rA   r>   r,   r=   r   r   r#   r<   )r#   zUnion[Graph, ConjunctiveGraph])returnNone)NNN)r<   z	IO[bytes]r=   Optional[str]rJ   rU   rK   zOptional[bool]rL   r   rS   rT   )__name__
__module____qualname____firstlineno____doc__
short_nameindentStringr!   r5   r8   rQ   __static_attributes____classcell__)r$   s   @r%   r   r      so    $JL4M$ #"&#'9-9- 9-  	9-
 !9- 9- 
9- 9-r'   N)rZ   
__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>rf      s>   
 # M M M 0 > #7
g-% g-r'   