
    01i=                    .   S SK Jr  S SKrS SK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  S SKJrJrJr  S SKJr  S S	KJr  S S
KJr  S SK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Qr) " S S\5      r*Sr+Sr,\" S5      r-SS jr. " S S\5      r/g)    )annotationsN)IOAnyDict	GeneratorOptionalSetTuple)escape	quoteattr)
Collection)Graph)RDFRDFS	Namespace)RDFVOC)	XMLWriter)
Serializer)BNodeIdentifiedNode
IdentifierLiteralNodeURIRef)first	more_than   )ESCAPE_ENTITIES)fixXMLSerializerPrettyXMLSerializerc                     ^  \ rS rSrSrS	U 4S jjrS
S jr  S         SS jjrSSS jjr S       SS jjr	Sr
U =r$ )r       zRDF/XML RDF graph serializer.c                ,   > [         [        U ]  U5        g N)superr    __init__)selfstore	__class__s     [/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/plugins/serializers/rdfxml.pyr'   XMLSerializer.__init__   s    mT+E2    c              #  @  #    U R                   nUR                  n0 n[        UR                  5       5       H$  nUR	                  U5      u  pVn[        U5      X5'   M&     [        S5      nSU;   a  US   U:X  d   eOXS'   UR                  5        H
  u  pVXV4v   M     g 7f)N+http://www.w3.org/1999/02/22-rdf-syntax-ns#rdf)r)   namespace_managerset
predicatescompute_qname_strictr   items)	r(   r)   nmbindings	predicateprefix	namespacenameRDFNSs	            r+   
__bindingsXMLSerializer.__bindings   s     

$$&(U--/0I&(&=&=i&H#Ft%i0H 1
 DEHE?e+++#UO!)!1F## "2s   BBc                  ^^ Ub  X l         O2U R                  R                   b  U R                  R                   U l         TU l        0 U l        U R                  mUU4S j=U l        nU" SU R                  -  5        U" S5        SU;   a  U" SUS   -  5        O&U R                   (       a  U" SU R                   -  5        [        U R                  5       5      nUR                  5         U H*  u  pxU(       a  U" SU< SU< S35        M  U" S	U-  5        M,     U" S
5        U R                  R                  5        H  n	U R                  U	S5        M     U" S5        U ?g )Nc                F   > TR                  U R                  TS5      5      $ )Nreplace)writeencode)uniencodingstreams    r+   <lambda>)XMLSerializer.serialize.<locals>.<lambda>>   s    cjj96U)Vr-   z$<?xml version="1.0" encoding="%s"?>
z	<rdf:RDF
xml_basez   xml:base="%s"
z	   xmlns:z="z"
z   xmlns="%s"
>
r   z</rdf:RDF>
)baser)   _XMLSerializer__stream_XMLSerializer__serializedrE   rB   list_XMLSerializer__bindingssortsubjectssubject)
r(   rF   rK   rE   kwargsrB   r7   r9   r:   rR   s
    ` `      r+   	serializeXMLSerializer.serialize/   s.    IZZ__(

DI35==VV
U 	5EF 	l &
);;<YY&23 )*!)Ffi@A')34	 "*
 	e zz**,GLL!$ -
 	n r-   c                *   XR                   ;  Ga  SU R                   U'   [        U[        [        45      (       a  U R                  nSU-  nSn[        U[        5      (       a  U" U< SU< SU< S35        O-[        U R                  U5      5      nU" U< SU< SU< 35        US S 4U R                  ;   aR  U" S5        U R                  R                  U5       H  u  pxU R                  XxUS-   5        M     U" U< S	U< S35        g U" S
5        g g g )Nr     zrdf:Description< rdf:nodeID=""z rdf:about=rJ   <//>
)
rM   
isinstancer   r   rB   r   
relativizer)   predicate_objectsr8   )	r(   rR   depthrB   indentelement_nameurir8   objects	            r+   rR   XMLSerializer.subjectd   s    +++)*Dg&'E6?33

0gu--V\7ST#DOOG$<=C&,LMT4(DJJ6%L-1ZZ-I-I'-R)	 y%!)D .S >? &M+ 4 ,r-   c                *   U R                   nSU-  nU R                  R                  R                  U5      n[	        U[
        5      (       ar  SnUR                  (       a  USUR                  -  -  nUR                  (       a  USUR                  -  -  nU" U< SU< U< S[        U[        5      < SU< S3	5        g [	        U[        5      (       a  U" U< SU< S	U< S
35        g U" U< SU< S[        U R                  U5      5      < S35        g )NrW    z xml:lang="%s"z rdf:datatype="%s"rX   >r[   rJ   rY   z"/>
z rdf:resource=r\   )rB   r)   r1   qname_strictr]   r   languagedatatyper   r   r   r   r^   )r(   r8   rd   r`   rB   ra   qname
attributess           r+   r8   XMLSerializer.predicate   s     



,,99)Dfg&&J.@@
2V__DD
5*fV_.MuV
 &%((VUFKLui0G&HJr-   )__serialized__streamrK   rB   r)   r   )returnz)Generator[Tuple[str, URIRef], None, None]NN
rF   z	IO[bytes]rK   Optional[str]rE   ru   rS   r   rr   Noner   )rR   r   r`   intrr   rv   r8   r   rd   r   r`   rx   rr   rv   )__name__
__module____qualname____firstlineno____doc__r'   rO   rT   rR   r8   __static_attributes____classcell__r*   s   @r+   r    r       s    '3$. #"&	33 3  	3
 3 
3j"8 GH#-7@C	 r-   r    z(http://www.w3.org/XML/1998/namespacelangz(http://www.w3.org/XML/1998/namespacebasezhttp://www.w3.org/2002/07/owl#c                <    U R                  S5      (       a  U SS $ U $ )z:strip off _: from nodeIDs... as they are not valid NCNamesz_:   N)
startswith)vals    r+   r   r      s!    
~~d12w
r-   c                     ^  \ rS rSrSrSS	U 4S jjjr  S
         SS jjrSSS jjr S       SS jjrSr	U =r
$ )r!      z$Pretty RDF/XML RDF graph serializer.c                J   > [         [        U ]  U5        [        5       U l        g r%   )r&   r!   r'   r2   forceRDFAbout)r(   r)   	max_depthr*   s      r+   r'   PrettyXMLSerializer.__init__   s    !41%8*-%r-   c                Z   0 U l         U R                  nUb  X l        OUR                  b  UR                  U l        UR                  SS5      U l        U R                  S:  d   S5       eUR
                  =U l        n[        XU5      =U l        n0 n[        UR                  5       5      R                  UR                  S [        R                  5      5      n	U	 H  n
UR                  U
5      u  pnXU'   M     SUS'   UR!                  ["        R                  5        SU;   a  UR%                  [&        US   5        O1U R                  (       a   UR%                  [&        U R                  5        UR)                  UR+                  5       5        UR-                  5        H=  nS S U4U;   a  US U4U;   a  U R/                  US5        M)  M+  U R/                  US5        M?     [        5       nUR-                  5        H=  n[1        U[2        5      (       a  UR5                  U5        M+  U R/                  US5        M?     U H'  nUU R                   ;  d  M  U R/                  WS5        M)     UR7                  ["        R                  5        UR9                  S	R;                  S
5      5        S U l         g )Nr      r   z max_depth must be greater than 0r/   r0   rI   r   
zlatin-1) _PrettyXMLSerializer__serializedr)   rK   getr   r1   r6   r   writerr2   r3   unionobjectsr   typer4   pushr   	attributeXMLBASE
namespacesr5   rQ   rR   r]   r   addpoprB   rC   )r(   rF   rK   rE   rS   r)   r6   r   r   possibler8   r9   r:   localrR   bnodesbnodes                    r+   rT   PrettyXMLSerializer.serialize   sA    46

IZZ#

DIK3~~!E#EE!..."(X>>f
!%"2"2"45;;MM$)
 "I')'>'>y'I$Fu!*v "
 J
5FJJWfZ&89YYWdii0***,-
 ~~'GdG$-T7+u4LL!, 5 Wa( (  ~~'G'5))

7#LL!$	 ( ED---Wa(  	

6::T[[+, !r-   c                   U R                   nU R                  nXR                  ;   a  UR                  [        R
                  5        UR                  [        R                  U R                  U5      5        UR                  [        R
                  5        U R                  R                  U5        g XR                  ;  Gaa  SU R                  U'   [        UR                  U[        R                  5      5      n U R                   R#                  U5        U=(       d    [        R
                  nUR                  U5        ['        U[(        5      (       a:  S nU" S5      (       a)  UR                  [        R*                  [-        U5      5        O/UR                  [        R                  U R                  U5      5        US S 4U;   aJ  UR/                  U5       H5  u  pU[        R                  :X  a  X:X  a  M   U R1                  XUS-   5        M7     UR                  U5        g XR                  ;   a  UR                  [        R
                  5        UR                  [        R                  U R                  U5      5        UR                  [        R
                  5        U R                  R                  U5        g g ! [$         a    S n GNf = f)Nr   c                    g)NT )ceils    r+   subj_as_obj_more_than:PrettyXMLSerializer.subject.<locals>.subj_as_obj_more_than  s    r-   )r)   r   r   r   r   Descriptionr   aboutr^   r   remover   r   r   r   r   r6   rl   	Exceptionr]   r   nodeIDr   r_   r8   )
r(   rR   r`   r)   r   r   elementr   r8   rd   s
             r+   rR   PrettyXMLSerializer.subject   s   

(((KK**+V\\4??7+CDJJv))*%%g.---)*Dg&w9:Dd# 0f00GKK '5))  )++$$V]]CLA   tw/GHt$-).)@)@)I%I%1fn y%!)D	 *J JJw***KK**+V\\4??7+CDJJv))*%%g. +A  s   :J; ;K
Kc                >	   U R                   nU R                  nUR                  U5        [        U[        5      (       Ga(  UR
                  (       a   UR                  [        UR
                  5        UR                  [        R                  :X  a  [        UR                  [        R                  R                  R                  5      (       aN  UR                  [         R"                  S5        UR%                  S5        UR&                  R)                  U5        GOsUR                  (       a*  UR                  [         R                  UR                  5        UR%                  U5        GO%X R*                  ;   d	  US S 4U;  a  [        U[,        5      (       aN  [/        UR1                  S S U45      S5      (       a)  UR                  [         R2                  [5        U5      5        GOUR                  [         R6                  U R9                  U5      5        GOy[;        UR=                  U[        R:                  5      5      (       a  SU R*                  U'   SS KnURA                  S[C        U5      -  S-   [D        SS9  UR                  [         R"                  S	5        [G        XR5      nU Hj  n[        U[H        5      (       a  U RJ                  RM                  U5        U RO                  U5        [        U[H        5      (       a  M[  SU R*                  U'   Ml     GOw[;        URQ                  U[        RR                  [T        RV                  [X        RV                  /45      5      (       aE  [        U[H        5      (       a0  UR                  [         R6                  U R9                  U5      5        OX0RZ                  ::  a  U RO                  X#S-   5        O[        U[,        5      (       a|  X R*                  ;  aC  US S 4U;   a:  []        [_        URa                  US
95      5      S:X  a  U RO                  X#S-   5        OYUR                  [         R2                  [5        U5      5        O/UR                  [         R6                  U R9                  U5      5        URc                  U5        g )Nr   rg   r   r   z&Assertions on %s other than RDF.first z/and RDF.rest are ignored ... including RDF.Listr   )
stacklevelr   )rd   )2r   r)   r   r]   r   rj   r   XMLLANGrk   r   
XMLLiteralvaluexmldomminidomDocumentr   	parseTypetextrF   rB   r   r   r   triplesr   r   resourcer^   r   r   warningswarnreprUserWarningr   r   r   r   rR   triples_choicesr   OWL_NSClassr   r   lenrN   rQ   r   )	r(   r8   rd   r`   r   r)   r   colitems	            r+   r8   PrettyXMLSerializer.predicate3  sG    

Ifg&&  &//:#..0Zcggoo666 6   !1!19=B##F+??$$V__fooFF# '''D$'50&%((U]]D$+?@!DD$$V]]CK@  $//&2IJ U]]6399566 -.!!&)  <tF|KGH 	     !1!1<@ /D!$//**..t4LL&%dF3323))$/   ))FLL$**+EF 
 !00$$V__doof6MNnn,LL3..&7&77#T40E9U^^6^%B CDI VQY7((FD $$V__doof6MN

9r-   )ro   rK   r   r   r6   r   )r   rq   rs   rt   rw   )rR   r   r`   rx   ry   )rz   r{   r|   r}   r~   r'   rT   rR   r8   r   r   r   s   @r+   r!   r!      s    .0 0 #"&	G!G! G!  	G!
 G! 
G!R6/r GHX#X-7X@CX	X Xr-   r!   )r   strrr   r   )0
__future__r   xml.dom.minidomr   typingr   r   r   r   r   r	   r
   xml.sax.saxutilsr   r   rdflib.collectionr   rdflib.graphr   rdflib.namespacer   r   r   rdflib.plugins.parsers.RDFVOCr   $rdflib.plugins.serializers.xmlwriterr   rdflib.serializerr   rdflib.termr   r   r   r   r   r   rdflib.utilr   r   	xmlwriterr   __all__r    r   r   r   r   r!   r   r-   r+   <module>r      sv    "  A A A . (  1 1 0 : ( P P ( &
9EJ EP 5
4	3	4`* `r-   