
    01i^'                    @   S r SSKJ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  SSKJr  SS	KJrJr  SS
KJr  SSKJrJrJrJr  \(       a
  SSK J!r!J"r"J#r#  / SQr$\" S5      r%\" S5      r& " S S\RN                  5      r(SS jr) " S S\5      r*g)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                      \ rS rSr% SrS\S'   S\S'   SS jrSS jrSS jrSS	 jr	SS
 jr
SS jr      SS jrSS jrSS jrSS jrSS jrSS jrSS jrSrg)r      z6An Sax Handler for TriX. See http://sw.nokia.com/trix/Optional[str]langdatatypec                >    Xl         SU l        U R                  5         g )NF)storepreserve_bnode_idsreset)selfr%   s     U/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/plugins/parsers/trix.py__init__TriXHandler.__init__#   s    
"'

    c                X    0 U l         S U l        S U l        SU l        S U l        S U l        g )Nr   )bnodegraphtriplestater"   r#   r(   s    r)   r'   TriXHandler.reset(   s,    ')
&*
26
	r,   c                    Xl         g N)locator)r(   r6   s     r)   setDocumentLocatorTriXHandler.setDocumentLocator2   s    r,   c                    g r5    r2   s    r)   startDocumentTriXHandler.startDocument5       r,   c                    g r5   r:   )r(   prefix	namespaces      r)   startPrefixMappingTriXHandler.startPrefixMapping8   r=   r,   c                    g r5   r:   )r(   r?   s     r)   endPrefixMappingTriXHandler.endPrefixMapping;   r=   r,   c                   US   [        [        5      :w  a   U R                  SUS   < S[        < 35        US   R                  5       S:X  a,  U R                  S:X  a	  SU l        GO"U R                  S5        GOUS   S:X  a,  U R                  S:X  a	  SU l        GOU R                  S	5        GOUS   S
:X  a>  U R                  S:X  a	  SU l        GOU R                  S:X  a  GOU R                  S5        GOUS   S:X  aX  U R                  S:X  a5  U R
                  c  [        U R                  S9U l        / U l        SU l        GOEU R                  S5        GO2US   S:X  an  U R                  S:X  aL  S U l	        S U l
         UR                  [        [        5      S45      U l	         UR                  S5      U l
        OU R                  S5        OUS   S:X  aW  U R                  S:X  a5  S U l	        S U l
         UR                  [        [        5      S45      U l	        OmU R                  S5        O[US   S:X  a;  U R                  S:X  a  SU l        O:U R                  S:X  a  O)U R                  S5        OU R                  SUS   -  5        SU l        g ! [         a     Nf = f! [         a    U R                  S5         N5f = f! [         a     NEf = f)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 )strTRIXNSerrorlowerr1   r/   r   r%   r0   r"   r#   getValueXMLNS	ExceptiongetValueByQNameKeyErrorchars)r(   nameqnameattrss       r)   startElementNSTriXHandler.startElementNS>   sk    7c&k!JJ7F$
 7==?f$zzQ


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

56!WzzQ
q

34!W zzQ::%!&TZZ!8DJ 


67!W&zzQ 	 $ %E
F/C DDIC$)$9$9*$EDM 

<=!W&zzQ 	 $ %E
F/C DDI 

<=!W_zzQ
q

23 JJ=QGH
O ! 
   CJJABC ! s6   ?%J %J! 6%K 
JJ!J?>J?
KKc                L   [         (       a  U R                  c   eUS   [        [        5      :w  a   U R	                  SUS   < S[        < 35        US   S:X  a  U R
                  S:X  aB  [        U R                  [        U R                  R                  5       5      S9U l        SU l        g U R
                  S	:X  a8  U =R                  [        U R                  R                  5       5      /-  sl        g U R	                  S
5        g US   S:X  a  U R
                  S:X  aH  [        U R                  U R                  U R                  R                  5       5      S9U l        SU l        g U R
                  S	:X  a>  U =R                  U R                  U R                  R                  5       5      /-  sl        g U R	                  S
5        g US   S:X  d	  US   S:X  a`  U R
                  S	:X  a>  U =R                  [        U R                  U R                  U R                  S9/-  sl        g U R	                  S5        g US   S:X  a  U R
                  S	:X  ay  [!        U R                  5      S:w  a3  U R	                  S[!        U R                  5      U R                  4-  5        U R                  R#                  U R                  5        SU l        g U R	                  S5        g US   S:X  a  S U l        SU l        g US   R%                  5       S:X  a  SU l        g U R	                  S5        g )Nr   rG   rH   rI   rL   rM   )r%   
identifierrK   rN   zgIllegal internal self.state - This should never happen if the SAX parser ensures XML syntax correctnessrQ   )rc   rP   rO   )r"   r#   zIThis should never happen if the SAX parser ensures XML syntax correctnessr0   z,Triple has wrong length, got %d elements: %sr/   rJ   zUnexpected close element)r   r0   rS   rT   rU   r1   r   r%   r   r\   stripr/   	get_bnoder   r"   r#   lenaddrV   )r(   r]   r^   s      r)   endElementNSTriXHandler.endElementNS   s   =;;***7c&k!JJ7F$
 7ezzQ"**

8H8H8J1K
 
qtzz'7'7'9 :;;

P
 !W_zzQ"JJ4>>$**:J:J:L+M
 
qtzz/?/?/A BCC

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

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

t{{+ 


7
 !WDJDJ!W]]_&DJ JJ12r,   c                    U R                   (       a  [        U5      nU$ XR                  ;   a  U R                  U   nU$ [        U5      nX R                  U'   U$ r5   )r&   r   r.   )r(   labelbns      r)   re   TriXHandler.get_bnode   sX    ""uB 	 

"ZZ& 	 5\$&

5!	r,   c                .    U =R                   U-  sl         g r5   )r\   r(   contents     r)   
charactersTriXHandler.characters   s    

g
r,   c                    g r5   r:   ro   s     r)   ignorableWhitespaceTriXHandler.ignorableWhitespace   r=   r,   c                    g r5   r:   )r(   targetdatas      r)   processingInstruction!TriXHandler.processingInstruction   r=   r,   c                    U R                   nUR                  5       < SUR                  5       < SUR                  5       < S3n[	        X1-   5      e)N:z: )r6   getSystemIdgetLineNumbergetColumnNumberr   )r(   messager6   infos       r)   rU   TriXHandler.error   sE    ,,!!!###%

 $.))r,   )
r.   r\   r#   r/   r"   r6   r&   r1   r%   r0   N)r%   r   )returnNone)r6   r   )r?   r!   r@   rS   r   r   )r?   r!   r   r   )r]   Tuple[Optional[str], str]r_   r   r   r   )r]   r   r   r   )rk   rS   r   r   )rp   rS   r   r   )r   rS   r   r   )__name__
__module____qualname____firstlineno____doc____annotations__r*   r'   r7   r;   rA   rD   r`   rh   re   rq   rt   ry   rU   __static_attributes__r:   r,   r)   r   r      sq    @

Y-Y=KY	YvK3Z	*r,   r   c                
   [        5       n UR                  SS5        UR                  [        R
                  S5        [        U 5      nUR                  U5        UR                  [        5       5        U$ ! [         a     Ncf = f)Nxmlr   rI   )
r   start_namespace_declAttributeError
setFeaturer   feature_namespacesr   setContentHandlersetErrorHandlerr   )r%   parserrJ   s      r)   r   r     sz    ]F 	##E+QR g00!4uD
T"
<>*M  s   A5 5
BBc                  (    \ rS rSrSrS rSS jrSrg)r   i  z0A parser for TriX. See http://sw.nokia.com/trix/c                    g r5   r:   r2   s    r)   r*   TriXParser.__init__  r=   r,   c                   UR                   R                  (       d   S5       e[        UR                   5      U l        U R                  R	                  5       nUR                  SS 5      nUb  XTl        U R                  R                  U5        g )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)   r   TriXParser.parse  su    JJ$$	=<	=$ %TZZ0,,88:!XX&:DA)1C. 	6"r,   )r   N)r   r   r   r   r   r   r   r   )r   r   r   r   r   r*   r   r   r:   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__rT   rX   ContentHandlerr   r   r   r:   r,   r)   <module>r      s    # L L L ( ( )  & -  : :DD
8 
;	<89d*'(( d*N # #r,   