§
    kÃ¿a…!  ã                   óþ   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ g d¢Z ed¦  «        Z ed¦  «        Z G d„ dej        ¦  «        Zd„ Z G d„ de¦  «        ZdS )z
A TriX parser for RDFLib
é    )Ú	Namespace)ÚURIRef)ÚBNode)ÚLiteral)ÚGraph)ÚParserError)ÚParser)Úhandler)Úmake_parser)ÚErrorHandler)Úcreate_parserÚTriXHandlerÚ
TriXParserz&http://www.w3.org/2004/03/trix/trix-1/ú$http://www.w3.org/XML/1998/namespacec                   ó`   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )r   z6An Sax Handler for TriX. See http://sw.nokia.com/trix/c                 óJ   — || _         d| _        |                      ¦   «          d S )NF)ÚstoreÚpreserve_bnode_idsÚreset)Úselfr   s     ú=/usr/lib/python3/dist-packages/rdflib/plugins/parsers/trix.pyÚ__init__zTriXHandler.__init__   s"   € ØˆŒ
Ø"'ˆÔØ�
Š
‰Œˆˆˆó    c                 óZ   — i | _         d | _        d | _        d| _        d | _        d | _        d S )Nr   )ÚbnodeÚgraphÚtripleÚstateÚlangÚdatatype©r   s    r   r   zTriXHandler.reset    s0   € ØˆŒ
ØˆŒ
ØˆŒØˆŒ
ØˆŒ	ØˆŒˆˆr   c                 ó   — || _         d S ©N)Úlocator)r   r$   s     r   ÚsetDocumentLocatorzTriXHandler.setDocumentLocator*   s   € ØˆŒˆˆr   c                 ó   — d S r#   © r!   s    r   ÚstartDocumentzTriXHandler.startDocument-   ó   € Øˆr   c                 ó   — d S r#   r'   )r   ÚprefixÚ	namespaces      r   ÚstartPrefixMappingzTriXHandler.startPrefixMapping0   r)   r   c                 ó   — d S r#   r'   )r   r+   s     r   ÚendPrefixMappingzTriXHandler.endPrefixMapping3   r)   r   c                 óÈ  — |d         t          t          ¦  «        k    r&|                      d|d         ›dt          ›�¦  «         |d         dk    r+| j        dk    r	d| _        �nv|                      d¦  «         �n_|d         dk    r+| j        dk    r	d| _        �n?|                      d	¦  «         �n(|d         d
k    r8| j        dk    r	d| _        �n| j        dk    r�nû|                      d¦  «         �nä|d         dk    rS| j        dk    r1| j        €t          | j        ¬¦  «        | _        g | _        d| _        �nœ|                      d¦  «         �n…|d         dk    r¨| j        dk    r‡d | _        d | _	        	 | 
                    t          t          ¦  «        df¦  «        | _        n#  Y nxY w	 |                     d¦  «        | _	        �n# t          $ r |                      d¦  «         Y nëw xY w|                      d¦  «         nÑ|d         dk    rf| j        dk    rEd | _        d | _	        	 | 
                    t          t          ¦  «        df¦  «        | _        n|#  Y nxxY w|                      d¦  «         n_|d         dk    r5| j        dk    rd| _        n@| j        dk    rn4|                      d¦  «         n|                      d|d         z  ¦  «         d| _        d S )Nr   ú1Only elements in the TriX namespace are allowed. ú!=é   ÚTriXzUnexpected TriX elementr   é   zUnexpected graph elementÚurié   é   zUnexpected uri elementr   )r   zUnexpected triple elementÚtypedLiteralr   r    z No required attribute 'datatype'zUnexpected typedLiteral elementÚplainLiteralzUnexpected plainLiteral elementÚidzUnexpected id elementz$Unknown element %s in TriX namespaceÚ )ÚstrÚTRIXNSÚerrorr   r   r   r   r   r   r    ÚgetValueÚXMLNSÚgetValueByQNameÚKeyErrorÚchars)r   ÚnameÚqnameÚattrss       r   ÚstartElementNSzTriXHandler.startElementNS6   s  € à�Œ7•c�&‘k”kÒ!Ð!Ø�JŠJˆJà˜”7�7�7�F˜Fð$ñô ð ð
 �Œ7�fÒÐØŒz˜QŠˆØ�”
‘
à—
’
Ð4Ñ5Ô5Ð5Ñ5à�!ŒW˜ÒÐØŒz˜QŠˆØ�”
‘
à—
’
Ð5Ñ6Ô6Ð6Ñ6à�!ŒW˜ÒÐØŒz˜QŠˆà�”
‘
Ø”˜q’�áà—
’
Ð3Ñ4Ô4Ð4Ñ4à�!ŒW˜Ò Ð ØŒz˜QŠˆØ”:Ð%å!&¨T¬ZÐ!8Ñ!8Ô!8�D”Jà �”Ø�”
‘
à—
’
Ð6Ñ7Ô7Ð7Ñ7à�!ŒW˜Ò&Ð&ØŒz˜QŠˆà �”	Ø $�”ðØ %§¢µµE±
´
¸FÐ/CÑ DÔ D�D”I�Iøðà�DøøøðCØ$)×$9Ò$9¸*Ñ$EÔ$E�D”M‘MøÝð Cð Cð CØ—J’JÐAÑBÔBÐBÐBÐBðCøøøð —
’
Ð<Ñ=Ô=Ð=Ð=à�!ŒW˜Ò&Ð&ØŒz˜QŠˆà �”	Ø $�”ðØ %§¢µµE±
´
¸FÐ/CÑ DÔ D�D”I�Iøðà�Døøøð —
’
Ð<Ñ=Ô=Ð=Ð=à�!ŒW˜Š_ˆ_ØŒz˜QŠˆà�”
�
à”˜q’�àà—
’
Ð2Ñ3Ô3Ð3Ð3ð �JŠJÐ=ÀÀQÄÑGÑHÔHÐHàˆŒ
ˆ
ˆ
s*   Å<.F+ Æ+F/Æ3G ÇG1Ç0G1È0.I ÉI#c                 ó(  — |d         t          t          ¦  «        k    r&|                      d|d         ›dt          ›�¦  «         |d         dk    r¬| j        dk    rHt	          | j        t          | j                             ¦   «         ¦  «        ¬¦  «        | _	        d| _        d S | j        d	k    r7| xj
        t          | j                             ¦   «         ¦  «        gz  c_
        d S |                      d
¦  «         d S |d         dk    r¸| j        dk    rNt	          | j        |                      | j                             ¦   «         ¦  «        ¬¦  «        | _	        d| _        d S | j        d	k    r=| xj
        |                      | j                             ¦   «         ¦  «        gz  c_
        d S |                      d
¦  «         d S |d         dk    s|d         dk    rT| j        d	k    r2| xj
        t          | j        | j        | j        ¬¦  «        gz  c_
        d S |                      d¦  «         d S |d         dk    r“| j        d	k    rqt          | j
        ¦  «        dk    r1|                      dt          | j
        ¦  «        | j
        fz  ¦  «         | j	                             | j
        ¦  «         d| _        d S |                      d¦  «         d S |d         dk    rd | _	        d| _        d S |d         dk    r	d| _        d S |                      d¦  «         d S )Nr   r1   r2   r3   r6   r7   )r   Ú
identifierr5   r8   zgIllegal internal self.state - This should never happen if the SAX parser ensures XML syntax correctnessr;   )rJ   r:   r9   )r   r    zIThis should never happen if the SAX parser ensures XML syntax correctnessr   z,Triple has wrong length, got %d elements: %sr   r4   zUnexpected close element)r=   r>   r?   r   r   r   r   rD   Ústripr   r   Ú	get_bnoder   r   r    ÚlenÚadd)r   rE   rF   s      r   ÚendElementNSzTriXHandler.endElementNS�   sD  € Ø�Œ7•c�&‘k”kÒ!Ð!Ø�JŠJˆJà˜”7�7�7�F˜Fð$ñô ð ð
 �Œ7�eÒÐØŒz˜QŠˆÝ"Øœ*µ¸¼
×8HÒ8HÑ8JÔ8JÑ1KÔ1Kðñ ô �”
ð �”
�
�
Ø”˜q’�Ø�”¥ t¤z×'7Ò'7Ñ'9Ô'9Ñ :Ô :Ð;Ñ;�”��à—
’
ðPñô ð ð ð ð
 �!ŒW˜Š_ˆ_ØŒz˜QŠˆÝ"Ø”J¨4¯>ª>¸$¼*×:JÒ:JÑ:LÔ:LÑ+MÔ+Mðñ ô �”
ð �”
�
�
Ø”˜q’�Ø�” §¢¨t¬z×/?Ò/?Ñ/AÔ/AÑ BÔ BÐCÑC�”��à—
’
ðPñô ð ð ð ð
 �!ŒW˜Ò&Ð&¨$¨q¬'°^Ò*CÐ*CØŒz˜QŠˆØ�”Ý˜DœJ¨T¬YÀÄÐOÑOÔOð ñ �”��ð —
’
ð7ñô ð ð ð ð
 �!ŒW˜Ò Ð ØŒz˜QŠˆÝ�t”{Ñ#Ô# qÒ(Ð(Ø—J’JØFÝ˜tœ{Ñ+Ô+¨T¬[Ð9ñ:ñô ð ð
 ”
—’˜tœ{Ñ+Ô+Ð+ð �”
�
�
à—
’
ð7ñô ð ð ð ð
 �!ŒW˜ÒÐØˆDŒJØˆDŒJˆJˆJà�!ŒW˜ÒÐØˆDŒJˆJˆJð �JŠJÐ1Ñ2Ô2Ð2Ð2Ð2r   c                 ó”   — | j         rt          |¦  «        }n0|| j        v r| j        |         }nt          |¦  «        }|| j        |<   |S r#   )r   r   r   )r   ÚlabelÚbns      r   rL   zTriXHandler.get_bnodeÙ   sQ   € ØÔ"ð 	'Ý�u‘”ˆBˆBà˜œ
Ð"Ð"Ø”Z Ô&��å˜5‘\”\�Ø$&�”
˜5Ñ!Øˆ	r   c                 ó&   — | xj         |z  c_         d S r#   )rD   ©r   Úcontents     r   Ú
characterszTriXHandler.charactersä   s   € Øˆ
Œ
�gÑˆ
Œ
ˆ
ˆ
r   c                 ó   — d S r#   r'   rT   s     r   ÚignorableWhitespacezTriXHandler.ignorableWhitespaceç   r)   r   c                 ó   — d S r#   r'   )r   ÚtargetÚdatas      r   ÚprocessingInstructionz!TriXHandler.processingInstructionê   r)   r   c                 ó¶   — | j         }|                     ¦   «         ›d|                     ¦   «         ›d|                     ¦   «         ›d�}t	          ||z   ¦  «        ‚)Nú:z: )r$   ÚgetSystemIdÚgetLineNumberÚgetColumnNumberr   )r   Úmessager$   Úinfos       r   r?   zTriXHandler.errorí   sc   € Ø”,ˆà×ÒÑ!Ô!Ð!Ð!Ø×!Ò!Ñ#Ô#Ð#Ð#Ø×#Ò#Ñ%Ô%Ð%Ð%ð
ˆõ
 ˜$ ™.Ñ)Ô)Ð)r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r%   r(   r-   r/   rH   rO   rL   rV   rX   r\   r?   r'   r   r   r   r      så   € € € € € Ø@Ð@ðð ð ð
ð ð ðð ð ðð ð ðð ð ðð ð ðWð Wð WðrH3ð H3ð H3ðT	ð 	ð 	ðð ð ðð ð ðð ð ð*ð *ð *ð *ð *r   r   c                 ó<  — t          ¦   «         }	 |                     dd¦  «         n# t          $ r Y nw xY w|                     t          j        d¦  «         t          | ¦  «        }|                     |¦  «         |                     t          ¦   «         ¦  «         |S )NÚxmlr   r3   )
r   Ústart_namespace_declÚAttributeErrorÚ
setFeaturer
   Úfeature_namespacesr   ÚsetContentHandlerÚsetErrorHandlerr   )r   ÚparserÚtrixs      r   r   r   ÷   s£   € Ý‰]Œ]€Fðð 	×#Ò# EÐ+QÑRÔRÐRÐRøÝð ð ð Øˆðøøøà
×Ò•gÔ0°!Ñ4Ô4Ð4Ý�uÑÔ€DØ
×Ò˜TÑ"Ô"Ð"Ø
×Ò�<™>œ>Ñ*Ô*Ð*Ø€Ms   �' §
4³4c                   ó   — e Zd ZdZd„ Zd„ ZdS )r   z0A parser for TriX. See http://sw.nokia.com/trix/c                 ó   — d S r#   r'   r!   s    r   r   zTriXParser.__init__	  r)   r   c                 ó  — |j         j        s
J d¦   «         ‚t          |j         ¦  «        | _        | j                             ¦   «         }|                     dd ¦  «        }|�||_        | j                             |¦  «         d S )Nz/TriXParser must be given a context aware store.r   )r   Úcontext_awarer   Ú_parserÚgetContentHandlerÚgetr   Úparse)r   ÚsourceÚsinkÚargsÚcontent_handlerr   s         r   ry   zTriXParser.parse  s�   € àŒJÔ$ð	=ð 	=à<ñ	=ô 	=ð 	=õ % T¤ZÑ0Ô0ˆŒØœ,×8Ò8Ñ:Ô:ˆØ!ŸXšXÐ&:¸DÑAÔAÐØÐ)Ø1CˆOÔ.ð 	Œ×Ò˜6Ñ"Ô"Ð"Ð"Ð"r   N)rd   re   rf   rg   r   ry   r'   r   r   r   r     s8   € € € € € Ø:Ð:ðð ð ð#ð #ð #ð #ð #r   r   N)rg   Úrdflib.namespacer   Úrdflib.termr   r   r   Úrdflib.graphr   Úrdflib.exceptionsr   Úrdflib.parserr	   Úxml.sax.saxutilsr
   Úxml.saxr   Úxml.sax.handlerr   Ú__all__r>   rA   ÚContentHandlerr   r   r   r'   r   r   ú<module>rˆ      sm  ððð ð 'Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø  Ð  Ð  Ð  Ð  Ð  ð %Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (à
8Ð
8Ð
8€ð 
ˆÐ;Ñ	<Ô	<€Øˆ	Ð8Ñ9Ô9€ð\*ð \*ð \*ð \*ð \*�'Ô(ñ \*ô \*ð \*ð~ð ð ð#ð #ð #ð #ð #�ñ #ô #ð #ð #ð #r   