
    Pi^'                    D   d Z ddlm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 ddlmZ dd	lmZmZ dd
lmZ ddlmZmZmZmZ er
ddl m!Z!m"Z"m#Z# g dZ$ ed          Z% ed          Z& G d dej'                  Z(ddZ) G d de          Z*dS )z
A TriX parser for RDFLib
    )annotations)TYPE_CHECKINGAnyDictListNoReturnOptionalTuple)handlermake_parser)ErrorHandler)ParserError)Graph)	Namespace)InputSourceParser)Store)BNode
IdentifierLiteralURIRef)AttributesImplLocator	XMLReader)create_parserTriXHandler
TriXParserz&http://www.w3.org/2004/03/trix/trix-1/$http://www.w3.org/XML/1998/namespacec                      e Zd ZU dZded<   ded<   d%dZd&d
Zd'dZd&dZd(dZ	d)dZ
d*dZd+dZd,dZd-dZd&dZd&d Zd.d#Zd$S )/r   z6An Sax Handler for TriX. See http://sw.nokia.com/trix/Optional[str]langdatatypestorer   c                J    || _         d| _        |                                  d S )NF)r#   preserve_bnode_idsreset)selfr#   s     o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/rdflib/plugins/parsers/trix.py__init__zTriXHandler.__init__#   s"    
"'

    returnNonec                Z    i | _         d | _        d | _        d| _        d | _        d | _        d S )Nr   )bnodegraphtriplestater!   r"   r'   s    r(   r&   zTriXHandler.reset(   s0    ')
&*
26
	r*   locatorr   c                    || _         d S N)r3   )r'   r3   s     r(   setDocumentLocatorzTriXHandler.setDocumentLocator2   s    r*   c                    d S r5    r2   s    r(   startDocumentzTriXHandler.startDocument5       r*   prefix	namespacestrc                    d S r5   r8   )r'   r;   r<   s      r(   startPrefixMappingzTriXHandler.startPrefixMapping8   r:   r*   c                    d S r5   r8   )r'   r;   s     r(   endPrefixMappingzTriXHandler.endPrefixMapping;   r:   r*   nameTuple[Optional[str], str]attrsr   c                   |d         t          t                    k    r&|                     d|d         dt                     |d                                         dk    r+| j        dk    r	d| _        n|                     d           nq|d         dk    r+| j        dk    r	d| _        nQ|                     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    rd | _	        d | _
        	 |                    t          t                    df          | _	        n# t          $ r Y nw xY w	 |                    d          | _
        n# t          $ r |                     d           Y nw xY w|                     d           n|d         dk    ro| j        dk    rNd | _	        d | _
        	 |                    t          t                    df          | _	        n# t          $ r Y nyw x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 elementr0   )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 )r=   TRIXNSerrorlowerr1   r/   r   r#   r0   r!   r"   getValueXMLNS	ExceptiongetValueByQNameKeyErrorchars)r'   rB   qnamerD   s       r(   startElementNSzTriXHandler.startElementNS>   s1    7c&kk!!JJJ777FF$  
 7==??f$$zQ



45555!WzQ



56666!WzQ

q

34444!W  zQ:%!&TZ!8!8!8DJ 



67777!W&&zQ 	 $ %E

F/C D DDII    DC$)$9$9*$E$EDMM C C CJJABBBBBC 

<====!W&&zQ 	 $ %E

F/C D DDII    D
 

<====!W__zQ

q

23333 JJ=QGHHH


s6   .F= =
G
	G
G* *HH.I: :
JJc                l   t           r	| j        J |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   rF   rG   rH   rK   rL   )r#   
identifierrJ   rM   zgIllegal internal self.state - This should never happen if the SAX parser ensures XML syntax correctnessrP   )r^   rO   rN   )r!   r"   zIThis should never happen if the SAX parser ensures XML syntax correctnessr0   z,Triple has wrong length, got %d elements: %sr/   rI   zUnexpected close element)r   r0   r=   rR   rS   r1   r   r#   r   rZ   stripr/   	get_bnoder   r!   r"   lenaddrT   )r'   rB   r[   s      r(   endElementNSzTriXHandler.endElementNS   sb    	+;***7c&kk!!JJJ777FF$  
 7ezQ"*
8H8H8J8J1K1K  
 


qtz'7'7'9'9 : :;;

P    
 !W__zQ"J4>>$*:J:J:L:L+M+M  
 


qtz/?/?/A/A B BCC

P    
 !W&&$q'^*C*CzQDJTYOOO   

7    
 !W  zQt{##q((JJFt{++T[9:   
t{+++ 




7    
 !WDJDJJJ!W]]__&&DJJJ JJ122222r*   labelr   c                    | j         rt          |          }n0|| j        v r| j        |         }nt          |          }|| j        |<   |S r5   )r%   r   r.   )r'   rd   bns      r(   r`   zTriXHandler.get_bnode   sQ    " 	'uBB
""Z&5\\$&
5!	r*   contentc                &    | xj         |z  c_         d S r5   )rZ   r'   rg   s     r(   
characterszTriXHandler.characters   s    

g



r*   c                    d S r5   r8   ri   s     r(   ignorableWhitespacezTriXHandler.ignorableWhitespace   r:   r*   c                    d S r5   r8   )r'   targetdatas      r(   processingInstructionz!TriXHandler.processingInstruction   r:   r*   messager   c                    | j         }|                                d|                                d|                                d}t	          ||z             )N:z: )r3   getSystemIdgetLineNumbergetColumnNumberr   )r'   rq   r3   infos       r(   rS   zTriXHandler.error   sc    ,!!!!!!######%%%%

 $.)))r*   N)r#   r   )r+   r,   )r3   r   )r;   r    r<   r=   r+   r,   )r;   r    r+   r,   )rB   rC   rD   r   r+   r,   )rB   rC   r+   r,   )rd   r=   r+   r   )rg   r=   r+   r,   )rq   r=   r+   r   )__name__
__module____qualname____doc____annotations__r)   r&   r6   r9   r?   rA   r\   rc   r`   rj   rl   rp   rS   r8   r*   r(   r   r      sB        @@   
               Y Y Y YvK3 K3 K3 K3Z	 	 	 	         * * * * * *r*   r   r#   r   r+   r   c                <   t                      }	 |                    dd           n# t          $ r Y nw xY w|                    t          j        d           t          |           }|                    |           |                    t                                 |S )Nxmlr   rH   )
r   start_namespace_declAttributeError
setFeaturer   feature_namespacesr   setContentHandlersetErrorHandlerr   )r#   parserrI   s      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dZdS )r   z0A parser for TriX. See http://sw.nokia.com/trix/c                    d S r5   r8   r2   s    r(   r)   zTriXParser.__init__  r:   r*   sourcer   sinkr   argsr   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'   r   r   r   content_handlerr%   s         r(   r   zTriXParser.parse  s    J$	= 	=<	= 	=$ %TZ00,88::!XX&:DAA)1CO. 	6"""""r*   N)r   r   r   r   r   r   r+   r,   )rx   ry   rz   r{   r)   r   r8   r*   r(   r   r     s=        ::  # # # # # #r*   r   N)r#   r   r+   r   )+r{   
__future__r   typingr   r   r   r   r   r	   r
   xml.saxr   r   xml.sax.handlerr   rdflib.exceptionsr   rdflib.graphr   rdflib.namespacer   rdflib.parserr   r   rdflib.storer   rdflib.termr   r   r   r   xml.sax.xmlreaderr   r   r   __all__rR   rV   ContentHandlerr   r   r   r8   r*   r(   <module>r      s    # " " " " " L L L L L L L L L L L L L L L L L L ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) ) ) )       & & & & & & - - - - - - - -       : : : : : : : : : : : : EDDDDDDDDDD
8
8
8 
;	<	<	899d* d* d* d* d*'( d* d* d*N    # # # # # # # # # #r*   