§
    kÃ¿aƒ2  ã                   ó  — d dl mZmZmZ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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 d dlZddl m!Z! g d¢Z" G d„ de¦  «        Z#dZ$dZ% ed¦  «        Z&d„ Z' G d„ de¦  «        Z(dS )é    )ÚIOÚDictÚOptionalÚSet)Ú	XMLWriter)Ú	NamespaceÚRDFÚRDFS)ÚRDFVOC)ÚGraph)Ú
IdentifierÚURIRefÚLiteralÚBNode)ÚfirstÚ	more_than)Ú
Collection)Ú
Serializer)Ú	quoteattrÚescapeNé   )ÚESCAPE_ENTITIES)ÚfixÚXMLSerializerÚPrettyXMLSerializerc                   óx   ‡ — e Zd Zdefˆ fd„Zd„ Z	 	 ddee         dee	         dee	         fd„Z
dd
„Zdd„Zˆ xZS )r   Ústorec                 óX   •— t          t          | ¦  «                             |¦  «         d S ©N)Úsuperr   Ú__init__)Úselfr   Ú	__class__s     €úC/usr/lib/python3/dist-packages/rdflib/plugins/serializers/rdfxml.pyr!   zXMLSerializer.__init__   s'   ø€ Ý�m˜TÑ"Ô"×+Ò+¨EÑ2Ô2Ð2Ð2Ð2ó    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ð 	1ˆIØ&(×&=Ò&=¸iÑ&HÔ&HÑ#ˆF�I˜tÝ% iÑ0Ô0ˆH�VÑÐåÐDÑEÔEˆà�HÐÐØ˜E”? eÒ+Ð+Ð+Ð+Ð+à#ˆH�U‰Oà!)§¢Ñ!1Ô!1ð 	$ð 	$ÑˆF�IØ˜)Ð#Ð#Ð#Ð#Ð#ð	$ð 	$r%   NÚstreamÚbaseÚencodingc                 ó’  ‡‡— |�|| _         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)Úunir8   r6   s    €€r$   ú<lambda>z)XMLSerializer.serialize.<locals>.<lambda>;   s!   ø€ ¨¯ª°c·j²jÀÈ9Ñ6UÔ6UÑ)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>
)r7   r   Ú_XMLSerializer__streamÚ_XMLSerializer__serializedr8   r<   ÚlistÚ_XMLSerializer__bindingsÚsortÚsubjectsÚsubject)
r"   r6   r7   r8   Úargsr<   r/   r1   r2   rH   s
    ` `      r$   Ú	serializezXMLSerializer.serialize,   s±  øø€ ð ÐØˆDŒIˆIØŒZŒ_Ð(Øœ
œˆDŒIØˆŒØ35ˆÔØ”=ˆØVÐVÐVÐVÐVÐVˆŒ
�Uð 	ˆÐ5¸¼ÑEÑFÔFÐFð 	ˆˆlÑÔÐð ˜ÐÐØˆEÐ&¨¨jÔ)9Ñ9Ñ:Ô:Ð:Ð:ØŒYð 	4ØˆEÐ&¨¬Ñ2Ñ3Ô3Ð3õ ˜ŸšÑ)Ô)Ñ*Ô*ˆØ�Š‰Œˆà!)ð 	5ð 	5ÑˆF�IØð 5Ø��¨f¨f¨f°i°i°iÐ@ÑAÔAÐAÐAà�Ð'¨)Ñ3Ñ4Ô4Ð4Ð4Øˆˆe‰Œˆð ”z×*Ò*Ñ,Ô,ð 	%ð 	%ˆGØ�LŠL˜ !Ñ$Ô$Ð$Ð$ð 	ˆˆnÑÔÐð ÐÐÐr%   r   c                 ó&  — || 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=rA   ú</ú/>
)
rC   Ú
isinstancer   r   r<   r   Ú
relativizer   Úpredicate_objectsr0   )	r"   rH   Údepthr<   ÚindentÚelement_nameÚurir0   Úobjects	            r$   rH   zXMLSerializer.subject`   sg  € Ø˜$Ô+Ð+Ñ+Ø)*ˆDÔ˜gÑ&å˜'¥E­6 ?Ñ3Ô3ð "Øœ
�Ø ™�Ø0�å˜g¥uÑ-Ô-ð NØ�E°V°V°V¸\¸\¸\È7È7È7ÐSÑTÔTÐTÐTå# D§O¢O°GÑ$<Ô$<Ñ=Ô=�CØ�E°&°&°&¸,¸,¸,ÈÈÐLÑMÔMÐMà˜T 4Ð(¨D¬JÐ6Ð6Ø�E˜%‘L”L�Là-1¬Z×-IÒ-IÈ'Ñ-RÔ-Rð Eð EÑ)˜	 6ØŸš y°&¸%À!¹)ÑDÔDÐDÐDØ�E¨¨¨°°°Ð>Ñ?Ô?Ð?Ð?Ð?ð �E˜&‘M”M�M�M�Mð- ,Ð+ð"ð "r%   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 )NrL   Ú z xml:lang="%s"z rdf:datatype="%s"rM   ú>rP   rA   rN   z"/>
z rdf:resource=rQ   )r<   r   r)   Úqname_strictrR   r   ÚlanguageÚdatatyper   r   r   r   rS   )r"   r0   rY   rU   r<   rV   ÚqnameÚ
attributess           r$   r0   zXMLSerializer.predicatey   sR  € Ø”
ˆØ˜‘ˆØ”
Ô,×9Ò9¸)ÑDÔDˆå�f�gÑ&Ô&ð 	ØˆJàŒð AØÐ.°´Ñ@Ñ@�
àŒð EØÐ2°V´_ÑDÑD�
àˆEà�6�6˜5˜5 * * *­f°V½_Ñ.MÔ.MÐ.MÐ.MÈuÈuÈuðVñô ð ð ð õ ˜&¥%Ñ(Ô(ð Ø�°V°V°V¸U¸U¸UÀFÀFÀFÐKÑLÔLÐLÐLÐLà�à�v�v˜u˜u˜u¥i°·²ÀÑ0GÔ0GÑ&HÔ&HÐ&HÐ&HðJñô ð ð ð r%   ©NN©r   )Ú__name__Ú
__module__Ú__qualname__r   r!   rE   r   Úbytesr   ÚstrrJ   rH   r0   Ú__classcell__©r#   s   @r$   r   r      sÅ   ø€ € € € € ð3˜eð 3ð 3ð 3ð 3ð 3ð 3ð$ð $ð $ð, #Ø"&ð	2ð 2à�5”	ð2ð �sŒmð2ð ˜3”-ð	2ð 2ð 2ð 2ðh"ð "ð "ð "ð2ð ð ð ð ð ð ð 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                 óD   — |                       d¦  «        r
| dd…         S | S )z:strip off _: from nodeIDs... as they are not valid NCNamesz_:é   N)Ú
startswith)Úvals    r$   r   r   œ   s(   € à
‡~‚~�dÑÔð Ø�1�2�2Œwˆàˆ
r%   c                   ó~   ‡ — e Zd Zddefˆ fd„Z	 	 ddee         dee         dee         fd„Z	dd
e
defd„Zdd„Zˆ xZS )r   é   r   c                 ó~   •— t          t          | ¦  «                             |¦  «         t          ¦   «         | _        d S r   )r    r   r!   r*   ÚforceRDFAbout)r"   r   Ú	max_depthr#   s      €r$   r!   zPrettyXMLSerializer.__init__¥   s4   ø€ ÝÕ! 4Ñ(Ô(×1Ò1°%Ñ8Ô8Ð8Ý*-©%¬%ˆÔÐÐr%   Nr6   r7   r8   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 )Nrs   rp   r   z max_depth must be greater than 0r'   r(   r@   r   ú
zlatin-1)Ú _PrettyXMLSerializer__serializedr   r7   Úgetrs   r)   r.   r   Úwriterr*   r+   ÚunionÚobjectsr	   Útyper,   Úpushr   Ú	attributeÚXMLBASEÚ
namespacesr-   rG   rH   rR   r   ÚaddÚpopr<   r=   )r"   r6   r7   r8   rI   r   r.   rx   r   Úpossibler0   r1   r2   ÚlocalrH   ÚbnodesÚbnodes                    r$   rJ   zPrettyXMLSerializer.serialize©   sÉ  € ð 46ˆÔØ”
ˆàÐØˆDŒIˆIØŒZÐ#Øœ
ˆDŒIØŸš +¨qÑ1Ô1ˆŒØŒ~ Ò!Ð!Ð!Ð#EÑ!Ô!Ð!àÔ.Ð.ˆŒ�"Ý(¨°°XÑ>Ô>Ð>ˆŒ�fØˆ
å�u×'Ò'Ñ)Ô)Ñ*Ô*×0Ò0°·²¸tÅSÄXÑ1NÔ1NÑOÔOˆà!ð 	+ð 	+ˆIØ')×'>Ò'>¸yÑ'IÔ'IÑ$ˆF�I˜uØ!*ˆJ�vÑÐàIˆ
�5Ñà�Š•F”JÑÔÐà˜ÐÐØ×Ò�W d¨:Ô&6Ñ7Ô7Ð7Ð7ØŒYð 	1Ø×Ò�W d¤iÑ0Ô0Ð0à×Ò˜*×*Ò*Ñ,Ô,Ñ-Ô-Ð-ð —~’~Ñ'Ô'ð 	)ð 	)ˆGØ�d˜GÐ$¨Ð-Ð-Ø˜T 7Ð+¨uÐ4Ð4Ø—L’L ¨!Ñ,Ô,Ð,øà—’˜W aÑ(Ô(Ð(Ð(õ ‘”ˆà—~’~Ñ'Ô'ð 	%ð 	%ˆGÝ˜'¥5Ñ)Ô)ð Ø—
’
˜7Ñ#Ô#Ð#ØØ�LŠL˜ !Ñ$Ô$Ð$Ð$ð ð 	)ð 	)ˆEØ˜DÔ-Ð-Ð-Ø—’˜W aÑ(Ô(Ð(øà�
Š
•6”:ÑÔÐØ�Š�T—[’[ Ñ+Ô+Ñ,Ô,Ð,ð !ˆÔÐÐr%   r   rH   rU   c                 óf  — | j         }| j        }|| j        v r�|                     t          j        ¦  «         |                     t          j        |                      |¦  «        ¦  «         | 	                    t          j        ¦  «         | j         
                    |¦  «         d S || j        v�rld| j        |<   t          |                     |t          j        ¦  «        ¦  «        }	 | j                             |¦  «         n	#  d }Y n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   rx   rr   r|   r   ÚDescriptionr}   ÚaboutrS   r�   Úremoverv   r   rz   r	   r{   r.   r`   rR   r   ÚnodeIDr   rT   r0   )
r"   rH   rU   r   rx   r{   ÚelementrŠ   r0   rY   s
             r$   rH   zPrettyXMLSerializer.subjectí   sŠ  € Ø”
ˆØ”ˆà�dÔ(Ð(Ð(Ø�KŠK�Ô*Ñ+Ô+Ð+Ø×Ò�Vœ\¨4¯?ª?¸7Ñ+CÔ+CÑDÔDÐDØ�JŠJ•vÔ)Ñ*Ô*Ð*ØÔ×%Ò% gÑ.Ô.Ð.Ð.Ð.à˜DÔ-Ð-Ñ-Ø)*ˆDÔ˜gÑ&Ý˜Ÿš wµ´Ñ9Ô9Ñ:Ô:ˆDðØ”—’˜dÑ#Ô#Ð#Ð#øðØ���øøøàÐ0�fÔ0ˆGØ�KŠK˜Ñ Ô Ð å˜'¥5Ñ)Ô)ð Ið ð  ð  ð )Ð(¨Ñ+Ô+ð BØ×$Ò$¥V¤]µC¸±L´LÑAÔAÐAøð × Ò ¥¤¨t¯ª¸wÑ/GÔ/GÑHÔHÐHà˜˜tÐ$¨Ð-Ð-Ø).×)@Ò)@ÀÑ)IÔ)Ið Eð EÑ%�I˜vØ%­¬Ò1Ð1°fÀ²n°nØŸš y°&¸%À!¹)ÑDÔDÐDøà�JŠJ�wÑÔÐÐÐà˜Ô*Ð*Ð*à�KŠK�Ô*Ñ+Ô+Ð+Ø×Ò�Vœ\¨4¯?ª?¸7Ñ+CÔ+CÑDÔDÐDØ�JŠJ•vÔ)Ñ*Ô*Ð*ØÔ×%Ò% gÑ.Ô.Ð.Ð.Ð.ð +Ð*s   Ã'D ÄD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rŸt          |t,          ¦  «        rUt/          |                     d d |f¦  «        d¦  «        r-|                     t           j        t5          |¦  «        ¦  «         �nÁ|                     t           j        |                      |¦  «        ¦  «         �nŒt;          |                     |t          j        ¦  «        ¦  «        rØd| 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�n‡t;          | (                    |t          j)        tT          j+        tX          j+        gf¦  «        ¦  «        rIt          |tH          ¦  «        r4|                     t           j        |                      |¦  «        ¦  «         nù|| j-        k    r|  '                    ||dz   ¦  «         nÔt          |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   r[   r   r   z&Assertions on %s other than RDF.first z/and RDF.rest are ignored ... including RDF.Listrl   )Ú
stacklevelr   )rY   )2rx   r   r|   rR   r   r^   r}   ÚXMLLANGr_   r	   Ú
XMLLiteralÚvalueÚxmlÚdomÚminidomÚDocumentr   Ú	parseTypeÚtextr6   r<   rv   r   r   ÚtriplesrŽ   r   ÚresourcerS   r   rz   ÚwarningsÚwarnÚreprÚUserWarningr   r   rr   r€   rH   Útriples_choicesr{   ÚOWL_NSÚClassr
   rs   ÚlenrD   rG   r�   )	r"   r0   rY   rU   rx   r   r�   ÚcolÚitems	            r$   r0   zPrettyXMLSerializer.predicate   s*  € Ø”ˆØ”
ˆØ�Š�IÑÔÐå�f�gÑ&Ô&ð L	OØŒð ;Ø× Ò ¥¨&¬/Ñ:Ô:Ð:àŒ¥#¤.Ò0Ð0µZØ”�cœgœoÔ6ñ6ô 6Ð0ð × Ò ¥Ô!1°9Ñ=Ô=Ð=Ø—’˜B‘”�Ø”×#Ò# FÑ+Ô+Ð+Ñ+à”?ð GØ×$Ò$¥V¤_°f´oÑFÔFÐFØ—’˜FÑ#Ô#Ð#Ñ#à�tÔ(Ð(Ð(°¸¸tÐ0DÈÐ0MÐ0Må˜&¥%Ñ(Ô(ð KÝ˜UŸ]š]¨D°$¸Ð+?Ñ@Ô@À!ÑDÔDð AØ×$Ò$¥V¤]µC¸±K´KÑ@Ô@Ð@ùà× Ò ¥¤°$·/²/À&Ñ2IÔ2IÑJÔJÐJÑJõ �U—]’] 6­3¬9Ñ5Ô5Ñ6Ô6ð 4Oð -.�Ô! &Ñ)ð  ���à—’Ø<½tÀF¹|¼|ÑKØGñHåØ ð	 ñ ô ð ð × Ò ¥Ô!1°<Ñ@Ô@Ð@å  ¨Ñ/Ô/�àð 4ð 4�Då! $­Ñ/Ô/ð 5ØÔ*×.Ò.¨tÑ4Ô4Ð4Ø—L’L Ñ&Ô&Ð&å% d­FÑ3Ô3ð 4Ø23˜Ô)¨$Ñ/øñ4õ Ø×)Ò)Ø¥¤­F¬L½$¼*Ð+EÐFñô ñô ð Oõ ! ­Ñ0Ô0ð	Oð
 ×$Ò$¥V¤_°d·o²oÀfÑ6MÔ6MÑNÔNÐNÐNà˜dœnÒ,Ð,Ø—L’L ¨°©Ñ3Ô3Ð3Ð3å ­Ñ.Ô.ð Oð  dÔ&7Ð7Ð7Ø# T¨4Ð0°EÐ9Ð9Ý¥ U§^¢^¸6 ^Ñ%BÔ%BÑ CÔ CÑDÔDÈÒIÐIð Ÿš V¨U°Q©YÑ7Ô7Ð7Ð7à×(Ò(­¬½¸F¹¼ÑDÔDÐDÐDð ×$Ò$¥V¤_°d·o²oÀfÑ6MÔ6MÑNÔNÐNà�
Š
�9ÑÔÐÐÐr%   )rp   rb   rc   )rd   re   rf   r   r!   r   rg   r   rh   rJ   r   ÚintrH   r0   ri   rj   s   @r$   r   r   ¤   sß   ø€ € € € € ð0ð 0˜eð 0ð 0ð 0ð 0ð 0ð 0ð #Ø"&ð	B!ð B!à�5”	ðB!ð �sŒmðB!ð ˜3”-ð	B!ð B!ð B!ð B!ðH1/ð 1/˜zð 1/°#ð 1/ð 1/ð 1/ð 1/ðfSð Sð Sð Sð Sð Sð Sð Sr%   r   ))Útypingr   r   r   r   Ú$rdflib.plugins.serializers.xmlwriterr   Úrdflib.namespacer   r	   r
   Úrdflib.plugins.parsers.RDFVOCr   Úrdflib.graphr   Úrdflib.termr   r   r   r   Úrdflib.utilr   r   Úrdflib.collectionr   Úrdflib.serializerr   Úxml.sax.saxutilsr   r   Úxml.dom.minidomr•   Ú	xmlwriterr   Ú__all__r   r’   r~   r¢   r   r   rˆ   r%   r$   ú<module>rµ      sº  ðØ *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø :Ð :Ð :Ð :Ð :Ð :à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0à Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (Ø (Ð (Ð (Ð (Ð (Ð (à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð à &Ð &Ð &Ð &Ð &Ð &à
9Ð
9Ð
9€ð~ð ~ð ~ð ~ð ~�Jñ ~ô ~ð ~ðB 5€Ø
4€Ø	ˆÐ3Ñ	4Ô	4€ðð ð ðOð Oð Oð Oð O˜*ñ Oô Oð Oð Oð Or%   