
    01i!f                    (   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JrJr  SSKJr  SSKJrJr  SSKJrJr  SS	KJr  SS
KJr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+  SSKJ,r,J-r-J.r.  / SQr/\#r0\#Rb                  \#Rd                  \#Rf                  \#Rh                  \#Rj                  S.r6\#R:                  \#Rd                  \#Rb                  \#Rj                  \#Rh                  \#Rn                  \#Rp                  /r9\9\#Rt                  \#Rv                  /-   r<\(" S5      \(" S5      \(" S5      /r=\9\#Rv                  /-   \=-   r>\#Rd                  \#Rn                  \#Rb                  /r?\9\#Rt                  /-   \=-   r@\9\#Rt                  \#Rv                  /-   \=-   rA\#Rd                  \#Rh                  \#Rn                  /rBSrC\CS4rD\CS4rE " S S\(5      rF " S S5      rG " S S\R                  5      rIS"S jrJ " S S \!5      rKg!)#z
An RDF/XML parser for RDFLib
    )annotations)TYPE_CHECKINGAnyDictListNoReturnOptionalTuple)	urldefragurljoin)handlermake_parser	xmlreader)ErrorHandler)escape	quoteattr)ErrorParserError)Graph)RDF	is_ncname)InputSourceParser)RDFVOC)BNode
IdentifierLiteralURIRef)AttributesImplLocator)_ObjectType_SubjectType_TripleType)create_parserBagIDElementHandlerRDFXMLHandlerRDFXMLParser)aboutIDtyperesource	parseTypez4http://www.w3.org/1999/02/22-rdf-syntax-ns#aboutEachz:http://www.w3.org/1999/02/22-rdf-syntax-ns#aboutEachPrefixz0http://www.w3.org/1999/02/22-rdf-syntax-ns#bagID$http://www.w3.org/XML/1998/namespacebaselangc                  4   ^  \ rS rSrS/rU 4S jrS rSrU =r$ )r%   W   lic                :   > [         [        U ]  U5        SU l        g Nr   )superr   __init__r3   )selfval	__class__s     W/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/plugins/parsers/rdfxml.pyr7   BagID.__init__Z   s    fd$S)    c                X    U =R                   S-  sl         [        SU R                   -     $ N   z_%s)r3   RDFNSr8   s    r;   next_liBagID.next_li_   s"    1UTWW_%%r=   )r3   )	__name__
__module____qualname____firstlineno__	__slots__r7   rC   __static_attributes____classcell__)r:   s   @r;   r%   r%   W   s    I
& &r=   r%   c                  (    \ rS rSr/ SQrS rS rSrg)r&   e   )startcharendr3   idr/   subject	predicateobjectlistlanguagedatatypedeclareddatac                    S U l         S U l        S U l        SU l        S U l        S U l        S U l        S U l        S U l        S U l	        S U l
        S U l        S U l        g r5   )rN   rO   rP   r3   rQ   r/   rR   rT   rU   rV   rW   rX   rY   rB   s    r;   r7   ElementHandler.__init__w   s]    
				r=   c                X    U =R                   S-  sl         [        SU R                   -     $ r?   )r3   r   rB   s    r;   rC   ElementHandler.next_li   s"    1edggo&&r=   )r/   rO   rY   rW   rX   rP   rQ   rV   r3   rU   rT   rN   rR   N)rE   rF   rG   rH   rI   r7   rC   rJ    r=   r;   r&   r&   e   s    I"'r=   r&   c                     \ rS rS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)S jrS*S jr\" \5      rS*S jr\" \5      rS*S jr\" \5      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)0r'      c                >    Xl         SU l        U R                  5         g )NF)storepreserve_bnode_idsreset)r8   rb   s     r;   r7   RDFXMLHandler.__init__   s    
"'

r=   c                    [        5       nU R                  Ul        S Ul        S U/U l        0 U l        0 U l        0 /U l        U R                  S   U l        g )Nc                    g Nr^   )nameqnames     r;   <lambda>%RDFXMLHandler.reset.<locals>.<lambda>   s    4r=   )	r&   document_element_startrN   rP   stackidsbnode_ns_contexts_current_context)r8   document_elements     r;   rd   RDFXMLHandler.reset   sd    )+!%!<!<76

 $&,.
=
 ;?:K:KB:Or=   c                    Xl         g rh   )locator)r8   rw   s     r;   setDocumentLocator RDFXMLHandler.setDocumentLocator   s    r=   c                    g rh   r^   rB   s    r;   startDocumentRDFXMLHandler.startDocument       r=   c                    U R                   R                  U R                  R                  5       5        XR                  U'   U R                  R                  X=(       d    SSS9  g )N F)override)rr   appendrs   copyrb   bind)r8   prefix	namespaces      r;   startPrefixMapping RDFXMLHandler.startPrefixMapping   sK      !6!6!;!;!=>+1i(

R%@r=   c                F    U R                   S   U l        U R                   S	 g Nrm   )rr   rs   )r8   r   s     r;   endPrefixMappingRDFXMLHandler.endPrefixMapping   s#     $ 1 1" 5b!r=   c                "   U R                   nUR                  [        5       5        U R                  nU R                  nUR                  [        S 5      nUb  [        U5      u  pxU(       a(  UR                  (       a  [        UR                  U5      nOU R                  R                  5       =(       d    U R                  R                  5       n	U	(       a  [        X5      nOeU(       a  UR                  nUcO  U R                  R                  5       =(       d    U R                  R                  5       n	U	(       a  [        U	5      u  pxXul        UR                  [        S 5      n
U
c  U(       a  UR                  n
Xl        UR                  XU5        g rh   )ro   r   r&   currentparentgetBASEr   r/   r   rw   getPublicIdgetSystemIdLANGrV   rN   )r8   ri   rj   attrsro   r   r   r/   fragsystemIdrV   s              r;   startElementNSRDFXMLHandler.startElementNS   s    

^%&,,yyt$"4JD&++v{{D1<<335S9Q9Q9S"82D{{|<<335S9Q9Q9S!*8!4JD99T4(!??#d5)r=   c                n    U R                   R                  X5        U R                  R                  5         g rh   )r   rP   ro   popr8   ri   rj   s      r;   endElementNSRDFXMLHandler.endElementNS   s"    %

r=   c                P    U R                   R                  nU(       a	  U" U5        g g rh   )r   rO   )r8   contentrO   s      r;   
charactersRDFXMLHandler.characters   s     ||  M r=   c                    g rh   r^   )r8   r   s     r;   ignorableWhitespace!RDFXMLHandler.ignorableWhitespace   r}   r=   c                    g rh   r^   )r8   targetrY   s      r;   processingInstruction#RDFXMLHandler.processingInstruction   r}   r=   c                   Uu  p4nU R                   R                  U[        R                  [        R                  45        U R                   R                  U[        R
                  U45        U R                   R                  U[        R                  U45        U R                   R                  U[        R                  U45        g rh   )rb   addr   r+   	StatementrR   rS   rT   )r8   sidspospos         r;   add_reifiedRDFXMLHandler.add_reified   s{    a

SXXs}}56

S[[!,-

S]]A./

SZZ+,r=   c                    U R                   nUR                  5       < SUR                  5       < SUR                  5       < S3n[	        X1-   5      e)N:z: )rw   r   getLineNumbergetColumnNumberr   )r8   messagerw   infos       r;   errorRDFXMLHandler.error   sE    ,,!!!###%

 $.))r=   c                     U R                   S   $ )Nro   rB   s    r;   get_currentRDFXMLHandler.get_current       zz"~r=   c                     U R                   S   $ r   r   rB   s    r;   get_nextRDFXMLHandler.get_next   r   r=   c                     U R                   S   $ )Nr   rB   s    r;   
get_parentRDFXMLHandler.get_parent   r   r=   c                    [        U R                  R                  USS9nU(       a  US   S:X  a  US   S:w  a  SU-  n[        U5      $ )Nr@   )allow_fragmentsrm   #z%s#)r   r   r/   r   )r8   uriresults      r;   
absolutizeRDFXMLHandler.absolutize  sE    **CC3r7c>fRjC&7V^Ff~r=   c                   US   c  [        US   5      nO[        SR                  U5      5      n0 nUR                  5        Hy  u  pVUS   c  US   nOSR                  U5      nUR                  [        5      (       d  USS R                  5       S:X  a  MU  U[        ;   a  Xd[        U   '   Ml  Xd[        U5      '   M{     X4$ )Nr   r@   r      xml)r   joinitems
startswithXMLNSlowerUNQUALIFIEDrA   )r8   ri   rj   r   attsnvatts           r;   convertRDFXMLHandler.convert  s     7?$q'?D "''$-(DKKMDAt|dggaj~~e$$Aa(8E(A# $%U3Z $%VC[! " zr=   c                    US   (       a[  [        SR                  U5      5      [        R                  :X  a/  [	        U S5      nU R
                  Ul        U R                  Ul        g U R                  XU5        g )Nr   r   next)	r   r   r   r   getattrnode_element_startrN   node_element_endrP   )r8   ri   rj   r   r   s        r;   rn   $RDFXMLHandler.document_element_start)  sY     7vbggdm,

:4(D00DJ,,DH##D7r=   c                F   U R                  XU5      u  pU R                  nU R                  n[        U S5      nU R                  Ul        U R                  Ul        U[        ;   a  U R                  SU-  5        [        R                  U;   a  [        R                  U;   d  [        R                  U;   a  U R                  S5        U[        R                     n[        U5      (       d  U R                  SU-  5        U" SU-  5      n	XR                  ;   a  U R                  SU	-  5        SU R                  U	'   GOH[        R                  U;   a  [        R                  U;   d  [        R                  U;   a  U R                  S5        U[        R                     n
[        U
5      (       d  U R                  SU
-  5        U R                   S	L a8  XR"                  ;   a  U R"                  U
   n	O[%        5       n	XR"                  U
'   O}[%        U
5      n	Oq[        R                  U;   aS  [        R                  U;   d  [        R                  U;   a  U R                  S5        U" U[        R                     5      n	O
[%        5       n	U[        R&                  :w  a2  U R(                  R+                  U	[,        R.                  U" U5      45        UR0                  nU H  nUR3                  [5        [6        5      5      (       d  U" U5      n [9        XL   U5      nOU[,        R.                  :X  a*  [,        R.                  nU" U[,        R.                     5      nOCU[>        ;   a  M  U[@        ;   a  U R                  S
U-  5        M  U" U5      n [9        XL   U5      nU R(                  R+                  XW45        M     Xl!        g ! [:         a%  nU R                  UR<                  5         S nANRS nAff = f! [:         a%  nU R                  UR<                  5         S nANS nAff = f)Nr   zInvalid node element URI: %sz9Can have at most one of rdf:ID, rdf:about, and rdf:nodeIDz&rdf:ID value is not a valid NCName: %s#%sz)two elements cannot use the same ID: '%s'r@   *rdf:nodeID value is not a valid NCName: %sF"Invalid property attribute URI: %s)"r   r   r   r   property_element_startrN   property_element_endrP   NODE_ELEMENT_EXCEPTIONSr   r   r*   r)   nodeIDr   rp   rc   rq   r   Descriptionrb   r   r   r+   rV   r   strrA   r   r   msgNODE_ELEMENT_ATTRIBUTESPROPERTY_ATTRIBUTE_EXCEPTIONSrR   )r8   ri   rj   r   r   r   r   r   rQ   rR   r   rV   r   rS   rT   es                   r;   r    RDFXMLHandler.node_element_start7  s+    \\$u5
,,__
 tV$00
,,**JJ5<=99||t#v}}'<

VWfiiBR==

CbHI ,G(("

FPQ !DHHW]]d"yyD FLLD$8

VW&--(FV$$

G&PQ&&%/ZZ'"jj0G#gG)0JJv&-\\T!yyD FMMT$9

VW fll!34GgG6%%%JJNNGSXXz$/?@A ##C>>#e*--&sO	&$TY9F HH	#DN3//55

?#EF&sO	&$TY9F JJNNG781 4 "+  &JJquu%%&   &JJquu%%&s0   N?	O1?
O.	O))O.1
P ;PP c                   U R                   R                  (       a@  U R                  U R                  S   :w  a#  U R	                  SSR                  U5      -  5        U R                  R                  U R                   l        g )N   z1Repeat node-elements inside property elements: %sr   )r   rT   r   ro   r   r   rR   r   s      r;   r   RDFXMLHandler.node_element_end  sX     ;;$,,$**Q-"?JJCbggdmS "\\11r=   c                >
   U R                  XU5      u  pU R                  nU R                  n[        U S5      nS nS Ul        S Ul        UR                  [        [        5      5      (       d  U" U5      Ul	        OVU[        R                  :X  a  UR                  5       Ul	        O,U[        ;   a  U R                  SU-  5        OU" U5      Ul	        UR                  [        R                   S 5      n	U	b5  [#        U	5      (       d  U R                  SU	-  5        U" SU	-  5      Ul        OS Ul        UR                  [        R&                  S 5      n
UR                  [        R(                  S 5      nUR                  [        R*                  S 5      nU
b  Ub  U R                  S5        U
b,  U" U
5      nU R,                  Ul        U R0                  Ul        GO#Ub  [#        U5      (       d  U R                  SU-  5        U R4                  SL a:  XR6                  ;   a  U R6                  U   nO'[9        5       nXR6                  U'   UnO[9        U5      =pU R,                  Ul        U R0                  Ul        GOUGbJ  U HC  nU[        R*                  :w  d  M  U[        R                   :w  d  M/  U R                  SU-  5        ME     US	:X  aE  [9        5       =Ul        nU R<                  Ul        U R@                  Ul        U RB                  Ul        OUS
:X  a@  S Ul        [D        RF                  =ol        U R,                  Ul        U RH                  Ul        Oi[K        S[        RL                  S9nU RN                  Ul        [P        S0Ul)        U RT                  Ul        U RN                  Ul        U RV                  Ul        Xl,        g S nU R<                  Ul        U R,                  Ul        U R0                  Ul        UR                  [        RZ                  S 5      =ol-        UR\                  nUb	  U" U5      nOU H  nUR                  [        [        5      5      (       d	  U" U5      nO3U[^        ;   a  M;  U[`        ;   a  U R                  SU-  5        OU" U5      nU[D        Rb                  :X  a  [e        XN   5      nOUb  S n[K        XN   UU5      nUc
  [9        5       nU Rf                  Ri                  UWU45        M     Uc  SUl        S Ul,        g S Ul        Xl,        g )Nr   z Invalid property element URI: %sz&rdf:ID value is not a value NCName: %sr   z=Property element cannot have both rdf:nodeID and rdf:resourcer   Fz#Property attr '%s' now allowed hereResource
Collectionr   )rW   r   r   )5r   r   r   r   rY   rU   r   r   rA   rS   r   r3   rC   PROPERTY_ELEMENT_EXCEPTIONSr   r   r*   r   rQ   r,   r   r-   r   rN   r   rP   rc   rq   r   rR   property_element_charrO   r   r   r   nillist_node_element_endr   
XMLLiteralliteral_element_charr   rX   literal_element_startliteral_element_endrT   rW   rV   PROPERTY_ELEMENT_ATTRIBUTESr   r+   r   rb   r   )r8   ri   rj   r   r   r   r   r   rT   rQ   r,   r   
parse_typerR   r   rW   rV   rS   r   s                      r;   r   $RDFXMLHandler.property_element_start  s<    \\$u5
,,__
 tV$(, s5z** *4 0GVYY ' 1G00JJ9D@A !+4 0GXXfii&>R==

CbHI#EBJ/GJGJ88FOOT2&--.XXf..5
F$6JJVW)F00DJ,,DHV$$

G&PQ&&%/ZZ'!ZZ/F#gG)0JJv&$F#(=000DJ,,DH%Cf...3&))3C

#H3#NO   +/4w6GOf#'#=#=GL!%!<!<DJ#88DH</#'GL,/GG3F\!%!8!8DJ#99DH
 %R&2C2CDF#'#<#<GL(-u~G$!%!;!;DJ $ 9 9DI#77DH!'#99!44
00&*hhv&EE###!(+H~~c%j11 *3I7799JJG#MN *3I#((?ty)A+#'	8X>A>"WF

	156) * >GL!GNGL#Nr=   c                b    U R                   nUR                  b  U=R                  U-  sl        g g rh   )r   rY   )r8   rY   r   s      r;   r   #RDFXMLHandler.property_element_char  s(    ,,<<#LLD L $r=   c                F   U R                   nUR                  bT  UR                  cG  UR                  nUR                  b  S n[        UR                  XCR                  5      Ul        S Ul        U R                  R                  U R                  :X  ab  UR                  [        R                  :w  aD  U R                  R                  UR                  [        R                  [        R                  45        UR                  b  U R                  R                  U R                  R                   UR"                  UR                  45        UR$                  bG  U R'                  UR$                  U R                  R                   UR"                  UR                  45        S Ul        g rh   )r   rY   rT   rV   rW   r   r   rP   r   r   r   rb   r   rU   restr   rR   rS   rQ   r   )r8   ri   rj   r   literalLangs        r;   r   "RDFXMLHandler.property_element_end  s   ,,<<#(>!**K+"$W\\;@P@PQGNGL99==D666~~(

chh@A>>%JJNNDKK//1B1BGNNSTzz%  JJ!4!4g6G6G X r=   c                   U R                   nU R                  R                  [        R                  :X  a  [        5       nX@R                  l        U R                  R                  U R                  R                  [        R                  UR                  45        X@R                  l
        S U R                  l        g [        5       nU R                  R                  U R                  R                  [        R                  U45        U R                  R                  U[        R                  UR                  45        X@R                  l        g rh   )r   r   rU   r   r   r   rb   r   firstrR   rT   rO   r  )r8   ri   rj   r   rU   s        r;   r   #RDFXMLHandler.list_node_element_end+  s    ,,;;sww&7D  $KKJJNNDKK,,ciiIJ!%KK#DKK7D JJNNDKK,,chh=>JJNND#))W__=>#KKr=   c           	        U R                   nU R                  U R                  l        U R                  U R                  l        U R                  U R                  l        U R                  R                  R                  5       Ul	        US   (       a  U R                  US      nU(       a  SU< SUS   < 3Ul        OSUS   -  Ul        US   UR                  ;  aU  XTR                  US   '   U(       a"  U=R                  SU< SUS   < S3-  sl        O)U=R                  S	US   -  -  sl        OSUS   -  Ul        UR                  5        H  u  pUS   (       aQ  US   UR                  ;  a"  U R                  US      UR                  US   '   UR                  US      S-   US   -   nOUS   nU=R                  S
U< S[        U5      < 3-  sl        M     U=R                  S-  sl        g )Nr   <r   r@   z<%sz xmlns:z=""z xmlns="%s" =>)r   r   r   rN   r   rO   r   rP   r   rX   r   rs   rT   r   r   )r8   ri   rj   r   r   r   values          r;   r   #RDFXMLHandler.literal_element_start=  s    ,,44		22		00		;;//4467**473F-3T!W!=!&a7g...,2  a)NN&$q'&JJNNNmd1g&==N"T!W_GN ;;=KDAwAw'"2"22040E0Ed1g0NG$$T!W-''Q036a@ AwNN$	%0@AAN ) 	#r=   c                T    U R                   =R                  [        U5      -  sl        g rh   )r   rT   r   )r8   rY   s     r;   r   "RDFXMLHandler.literal_element_char_  s    vd|+r=   c                    US   (       a1  U R                   US      nU(       a  SU< SUS   < S3nOSUS   -  nOSUS   -  nU R                  =R                  U R                  R                  U-   -  sl        g )Nr   z</r   r@   r  z</%s>)rs   r   rT   r   )r8   ri   rj   r   rP   s        r;   r   !RDFXMLHandler.literal_element_endb  sn    7**473F$*DG4Q'DG#Cdll11C77r=   )rs   rr   rq   rp   rw   rc   ro   rb   N)rb   r   )returnNone)rw   r    )r   Optional[str]r   r   r  r  )r   r  r  r  )ri   Tuple[Optional[str], str]r   r   r  r  )ri   r  r  r  )r   r   r  r  )r   r   r   r#   )r   r   r  r   )r  zOptional[ElementHandler])r   r   r  r   )ri   r  r   r   r  z Tuple[URIRef, Dict[URIRef, str]])ri   Tuple[str, str]r   r   r  r  )ri   r  r  r  )rY   r   r  r  )%rE   rF   rG   rH   r7   rd   rx   r{   r   r   r   r   r   r   r   r   r   r   propertyr   r   r   r   r   r   r   rn   r   r   r   r   r   r   r   r   r   rJ   r^   r=   r;   r'   r'      sP   
P"A
"*-*=K*	*B
-*
 {#G
 HD
 j!F-=K	)8	8#	83A	8		8Q"#Q"3AQ"	Q"f	2|$#|$3A|$	|$|!
&$$ # 3A 	 D,	8r=   r'   c                ,   [        5       n UR                  SS5        UR                  [        R
                  S5        [        U5      nUR                  U 5        UR                  U5        UR                  [        5       5        U$ ! [         a     Ntf = f)Nr   r.   r@   )r   start_namespace_declAttributeError
setFeaturer   feature_namespacesr'   rx   setContentHandlersetErrorHandlerr   )r   rb   parserrdfxmls       r;   r$   r$   n  s    ]F 	##E+QR g00!45!F
f%
V$
<>*M  s   B 
BBc                  (    \ rS rSrSrS rSS jrSrg)r(   i  zAn RDF/XML parser.c                    g rh   r^   rB   s    r;   r7   RDFXMLParser.__init__  r}   r=   c                    [        X5      U l        U R                  R                  5       nUR                  SS 5      nUb  XTl        U R                  R                  U5        g )Nrc   )r$   _parsergetContentHandlerr   rc   parse)r8   sourcesinkargscontent_handlerrc   s         r;   r.  RDFXMLParser.parse  sR    $V2,,88:!XX&:DA)1C. 	6"r=   )r,  N)r/  r   r0  r   r1  r   r  r  )rE   rF   rG   rH   __doc__r7   r.  rJ   r^   r=   r;   r(   r(     s    
#r=   r(   N)r   r   rb   r   r  zxmlreader.XMLReader)Lr4  
__future__r   typingr   r   r   r   r   r	   r
   urllib.parser   r   xml.saxr   r   r   xml.sax.handlerr   xml.sax.saxutilsr   r   rdflib.exceptionsr   r   rdflib.graphr   rdflib.namespacer   r   rdflib.parserr   r   rdflib.plugins.parsers.RDFVOCr   rdflib.termr   r   r   r   xml.sax.xmlreaderr   r    r!   r"   r#   __all__rA   r)   r*   r+   r,   r-   r   r   rW   CORE_SYNTAX_TERMSr   r3   SYNTAX_TERMS	OLD_TERMSr   r   r   r   r  r   r   r   r%   r&   ContentHandlerr'   r$   r(   r^   r=   r;   <module>rG     s   # L L L + 3 3 ( . 0  + - 0 : :9CC
W
 \\
))KK!! JJ
II
LL

OO
MM
OO  !F$6$6		#BB AB
GH
=>	 		 	  "99fmmV\\B   	  ++VYY77)C   &yy&//6==I .vv&F &#' #'L`8G** `8F$#6 #r=   