
    Pi=                    @   d dl mZ d dlZd dl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 d dlmZ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 m!Z!m"Z"m#Z# d dl$m%Z%m&Z& ddl'm(Z( g dZ) G d de          Z*dZ+dZ, ed          Z-ddZ. G d de          Z/dS )    )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                  P     e Zd ZdZd fdZddZ	 	 dddZdd dZ	 dd!dZ xZ	S )"r    zRDF/XML RDF graph serializer.storer   c                X    t          t          |                               |           d S N)superr    __init__)selfr#   	__class__s     u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/rdflib/plugins/serializers/rdfxml.pyr'   zXMLSerializer.__init__   s'    mT""++E22222    return)Generator[Tuple[str, URIRef], None, None]c              #  V  K   | j         }|j        }i }t          |                                          D ]-}|                    |          \  }}}t          |          ||<   .t          d          }d|v r|d         |k    sJ n||d<   |                                D ]\  }}||fV  d S )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*   
__bindingszXMLSerializer.__bindings   s      
$&(U--//00 	1 	1I&(&=&=i&H&H#FIt%i00HVDEEHE?e+++++#HUO!)!1!1 	$ 	$FI)#####	$ 	$r+   Nstream	IO[bytes]baseOptional[str]encodingkwargsr   Nonec                   ||| _         n| j        j         | j        j         | _         | _        i | _        | j        fdx| _        } |d| j        z              |d           d|v r |d|d         z             n| j         r |d| j         z             t          |                                           }|                                 |D ](\  }}|r |d|d|d            |d	|z             ) |d
           | j        	                                D ]}	| 
                    |	d            |d           | `d S )Nc                V                         |                     d                    S )Nreplace)writeencode)unirB   r>   s    r*   <lambda>z)XMLSerializer.serialize.<locals>.<lambda>>   s!    cjj96U6U)V)V r+   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>
)r@   r#   _XMLSerializer__stream_XMLSerializer__serializedrB   rH   list_XMLSerializer__bindingssortsubjectssubject)
r(   r>   r@   rB   rC   rH   r7   r9   r:   rT   s
    ` `      r*   	serializezXMLSerializer.serialize/   s    DIIZ_(
DI35=VVVVVV
U 	5EFFF 	l E&
);;<<<<Y 	4E&2333 ))**!) 	5 	5FI 5fffiii@AAAA')34444e z**,, 	% 	%GLL!$$$$ 	n r+   r   rT   r   depthintc                &   || j         vrd| j         |<   t          |t          t          f          r| j        }d|z  }d}t          |t                    r ||d|d|d           n5t          |                     |                    } ||d|d|           |d d f| j        v rX |d           | j                            |          D ]\  }}| 	                    |||dz                ||d	|d           d S  |d
           d S d S d S )Nr     zrdf:Description< rdf:nodeID=""z rdf:about=rM   <//>
)
rO   
isinstancer   r   rH   r   
relativizer#   predicate_objectsr8   )	r(   rT   rV   rH   indentelement_nameurir8   objects	            r*   rT   zXMLSerializer.subjectd   si   $+++)*Dg&'E6?33 "
0gu-- NEVVV\\\777STTTT#DOOG$<$<==CE&&&,,,LMMMT4(DJ66E%LLL-1Z-I-I'-R-R E E)	6 y&%!)DDDDE>????? E&MMMMM1 ,+" "r+   r8   re   c                   | j         }d|z  }| j        j                            |          }t	          |t
                    rXd}|j        r|d|j        z  z  }|j        r|d|j        z  z  } ||d||dt          |t                    d|d	           d S t	          |t                    r ||d|d	|d
           d S  ||d|dt          |                     |                    d           d S )NrY    z xml:lang="%s"z rdf:datatype="%s"rZ   >r]   rM   r[   z"/>
z rdf:resource=r^   )rH   r#   r1   qname_strictr_   r   languagedatatyper   r   r   r   r`   )r(   r8   re   rV   rH   rb   qname
attributess           r*   r8   zXMLSerializer.predicate   sT    

,99)DDfg&& 	J A.@@
 E2V_DD
E6655***fV_.M.M.M.MuuuV    
 &%(( VVVUUUFFFKLLLLLvvuuui0G0G&H&H&H&HJ    r+   r#   r   )r,   r-   NN
r>   r?   r@   rA   rB   rA   rC   r   r,   rD   r   )rT   r   rV   rW   r,   rD   r8   r   re   r   rV   rW   r,   rD   )
__name__
__module____qualname____doc__r'   rQ   rU   rT   r8   __classcell__r)   s   @r*   r    r       s        ''3 3 3 3 3 3$ $ $ $. #"&	3 3 3 3 3j" " " " "8 GH        r+   r    z(http://www.w3.org/XML/1998/namespacelangz(http://www.w3.org/XML/1998/namespacebasezhttp://www.w3.org/2002/07/owl#valstrr,   c                D    |                      d          r
| dd         S | S )z:strip off _: from nodeIDs... as they are not valid NCNamesz_:   N)
startswith)ry   s    r*   r   r      s(    
~~d 122w
r+   c                  J     e Zd ZdZdd fdZ	 	 dddZdddZ	 dd dZ xZS )!r!   z$Pretty RDF/XML RDF graph serializer.   r#   r   c                ~    t          t          |                               |           t                      | _        d S r%   )r&   r!   r'   r2   forceRDFAbout)r(   r#   	max_depthr)   s      r*   r'   zPrettyXMLSerializer.__init__   s4    !4((11%888*-%%r+   Nr>   r?   r@   rA   rB   rC   r   r,   rD   c                z   i | _         | j        }||| _        n|j        |j        | _        |                    dd          | _        | j        dk    s
J d            |j        x| _        }t          |||          x| _        }i }t          |
                                                              |                    d t          j                            }	|	D ] }
|                    |
          \  }}}|||<   !d|d<   |                    t"          j                   d|v r"|                    t&          |d                    n'| j        r |                    t&          | j                   |                    |                                           |                                D ]=}d d |f|v r|d |f|v r|                     |d           '|                     |d           >t                      }|                                D ]C}t1          |t2                    r|                    |           -|                     |d           D|D ]!}|| j         vr|                     |d           "|                    t"          j                   |                    d	                    d
                     d | _         d S )Nr   r   r   z max_depth must be greater than 0r/   r0   rL   r   
zlatin-1) _PrettyXMLSerializer__serializedr#   r@   getr   r1   r6   r   writerr2   r3   unionobjectsr   typer4   pushr   	attributeXMLBASE
namespacesr5   rS   rT   r_   r   addpoprH   rI   )r(   r>   r@   rB   rC   r#   r6   r   r   possibler8   r9   r:   localrT   bnodesbnodes                    r*   rU   zPrettyXMLSerializer.serialize   s    46
DIIZ#
DIK33~!!!#E!!!.."(X>>>f
!%"2"2"4"455;;MM$))
 
 " 	+ 	+I')'>'>y'I'I$FIu!*JvI
5FJWfZ&89999Y 	1Wdi000***,,---
 ~~'' 	) 	)GdG$--T7+u44LL!,,,Wa((((  ~~'' 	% 	%G'5)) 

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

6:T[[++,,, !r+   r   rT   r   rV   rW   c                x   | j         }| j        }|| j        v r|                    t          j                   |                    t          j        |                     |                     |	                    t          j                   | j        
                    |           d S || j        vrud| j        |<   t          |                    |t          j                            }	 | j                            |           n# t$          $ r d }Y nw xY w|pt          j        }|                    |           t'          |t(                    r<d } |d          r-|                    t          j        t-          |                     n3|                    t          j        |                     |                     |d d f|v rK|                    |          D ]5\  }}	|t          j        k    r|	|k    s|                     ||	|dz              6|	                    |           d S || j        v r|                    t          j                   |                    t          j        |                     |                     |	                    t          j                   | j        
                    |           d S d S )Nr   c                    dS )NT )ceils    r*   subj_as_obj_more_thanz:PrettyXMLSerializer.subject.<locals>.subj_as_obj_more_than  s    4r+   )r#   r   r   r   r   Descriptionr   aboutr`   r   remover   r   r   r   r   r6   rl   	Exceptionr_   r   nodeIDr   ra   r8   )
r(   rT   rV   r#   r   r   elementr   r8   re   s
             r*   rT   zPrettyXMLSerializer.subject   s   
d(((KK*+++V\4??7+C+CDDDJJv)***%%g.....D---)*Dg&w99::Dd####    0f0GKK   '5)) I      )(++ B$$V]CLLAAA   tw/G/GHHHt$--).)@)@)I)I E E%Iv%11fnn y&%!)DDD JJw***KK*+++V\4??7+C+CDDDJJv)***%%g..... +*s   'D DDr8   re   c                	   | j         }| j        }|                    |           t          |t                    r|j        r |                    t          |j                   |j        t          j
        k    rzt          |j        t          j        j        j                  rQ|                    t           j        d           |                    d           |j                            |           n~|j        r%|                    t           j        |j                   |                    |           n;|| j        v s|d d f|vrt          |t,                    rUt/          |                    d d |f          d          r-|                    t           j        t5          |                     n|                    t           j        |                     |                     nt;          |                    |t          j                            rd| j        |<   dd l}|                     dtC          |          z  dz   tD          d           |                    t           j        d	           tG          ||          }|D ]e}t          |tH                    r| j%        &                    |           | '                    |           t          |tH                    s
d| j        |<   fnt;          |(                    |t          j)        tT          j+        tX          j+        gf                    rIt          |tH                    r4|                    t           j        |                     |                     n|| j-        k    r| '                    ||dz              nt          |t,                    r|| j        vrU|d d f|v rNt]          t_          |0                    |
                              dk    r| '                    ||dz              na|                    t           j        t5          |                     n3|                    t           j        |                     |                     |1                    |           d S )Nr   rg   r   r   z&Assertions on %s other than RDF.first z/and RDF.rest are ignored ... including RDF.Listr|   )
stacklevelr   )re   )2r   r#   r   r_   r   rj   r   XMLLANGrk   r   
XMLLiteralvaluexmldomminidomDocumentr   	parseTypetextr>   rH   r   r   r   triplesr   r   resourcer`   r   r   warningswarnreprUserWarningr   r   r   r   rT   triples_choicesr   OWL_NSClassr   r   lenrP   rS   r   )	r(   r8   re   rV   r   r#   r   colitems	            r*   r8   zPrettyXMLSerializer.predicate3  s-    
Ifg&& O	O ;  &/:::#.00Zcgo66 60   !19===B##F++++? G$$V_foFFFF#### d'''D$'500&%(( KU]]D$+?@@!DD A$$V]CKK@@@  $//&2I2IJJJJ U]]6395566 5O -.!&)  <tF||KGH 	       !1<@@@ // 4 4D!$// 5*..t444LL&&&%dF33 423)$/4 ))FL$*+EF   O
 !00O $$V_doof6M6MNNNNdn,,LL3333.. Od&777#T40E99U^^6^%B%B C CDDII VUQY7777((FDDDD $$V_doof6M6MNNN

9r+   )r   rn   ro   rp   rq   )rT   r   rV   rW   rr   )	rs   rt   ru   rv   r'   rU   rT   r8   rw   rx   s   @r*   r!   r!      s        ..0 0 0 0 0 0 0 #"&	G! G! G! G! G!R6/ 6/ 6/ 6/ 6/r GHX X X X X X X X Xr+   r!   )ry   rz   r,   rz   )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      s   " " " " " "     A A A A A A A A A A A A A A A A A A . . . . . . . . ( ( ( ( ( (       1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 : : : : : : ( ( ( ( ( ( P P P P P P P P P P P P P P P P ( ( ( ( ( ( ( ( & & & & & &
9
9
9E E E E EJ E E EP 5
4	3	4	4   ` ` ` ` `* ` ` ` ` `r+   