
    01i                        S SK Jr  S SK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  \(       a  S SKJrJr  S/rSS	0r " S
 S5      rg)    )annotationsN)IOTYPE_CHECKINGDictIterableListOptionalTuple)escape	quoteattr)URIRef)	NamespaceNamespaceManager	XMLWriterz&#13;c                      \ rS rSrSr   S         SS jjrSS jr\" \5      rSS jr	SS jr
SSS jjr0 4       SS	 jjrSSS
 jjrSS jrSS jrSS jrSrg)r      z,A simple XML writer that writes to a stream.Nc                    U=(       d    Sn[         R                  " U5      u  pgpU	" U5      =U l        nU(       a  UR                  SU-  5        / U l        X l        U=(       d    0 U l        SU l        g )Nzutf-8z#<?xml version="1.0" encoding="%s"?>T)codecslookupstreamwriteelement_stacknmextra_nsclosed)
selfr   namespace_managerencodingdeclr   encoderdecoderstream_readerstream_writers
             ^/home/james-whalen/.local/lib/python3.13/site-packages/rdflib/plugins/serializers/xmlwriter.py__init__XMLWriter.__init__   sh     &w9?x9P6-  -V44fLL>IJ(*# B    c                2    S[        U R                  5      -  $ )Nz  )lenr   r   s    r%   __get_indentXMLWriter.__get_indent*   s    c$,,---r(   c                l    U R                   (       d#  SU l         U R                  R                  S5        g g )NT>)r   r   r   r+   s    r%   __close_start_tagXMLWriter.__close_start_tag/   s'    {{DKKKc" r(   c                
   U R                  5         U R                  R                  nU" S5        U" U R                  5        U" SU R	                  U5      -  5        U R
                  R                  U5        SU l        SU l        g )N
z<%sF)	_XMLWriter__close_start_tagr   r   indentqnamer   appendr   parent)r   urir   s      r%   pushXMLWriter.push4   sg     !!ddkkedjjo%&!!#&r(   c                Z   U R                   R                  5       nU(       a  X:X  d   eU R                  R                  nU R                  (       d  SU l        U" S5        OEU R
                  (       a  U" S5        U" U R                  5        U" SU R                  U5      -  5        SU l        g )NTz/>r3   z</%s>)r   popr   r   r   r8   r5   r6   )r   r9   topr   s       r%   r=   XMLWriter.pop>   s}      $$&::!!{{DK$K{{ddkk"'DJJsO+,r(   c                    U R                  U5        UR                  5        H  u  pEU R                  XE5        M     U R                  U5        U R	                  5         g)z3Utility method for adding a complete simple elementN)r:   items	attributetextr=   )r   r9   content
attributeskvs         r%   elementXMLWriter.elementM   sE     			#$$&DANN1  '		'
r(   c                   U(       d  U R                   R                  5       nU R                  R                  nU" S5        U H;  u  p4U(       a  U" SU< SU< S35        M  X0R                  ;  d  M0  U" SU-  5        M=     U R                  R                  5        H*  u  p4U(       a  U" SU< SU< S35        M  U" SU-  5        M,     g )Nr3   z  xmlns:z="z"
z  xmlns="%s"
)r   
namespacesr   r   r   rA   )r   rK   r   prefix	namespaces        r%   rK   XMLWriter.namespacesW   s    ++-J!!d!+FVY?@}},&23 ", "&!4!4!6FVY?@&23	 "7r(   c                    U R                   R                  nU" SU R                  U5      < S[        U5      < 35        g )N =)r   r   r6   r   )r   r9   valuer   s       r%   rB   XMLWriter.attributej   s+    !!$**S/9U+;<=r(   c                >   U R                  5         SU;   a^  SU;   aX  SU;  aR  U R                  R                  S5        U R                  R                  U5        U R                  R                  S5        g U R                  R                  [        U[        5      5        g )N<r/   z]]>z	<![CDATA[)r4   r   r   r   ESCAPE_ENTITIES)r   rC   s     r%   rC   XMLWriter.textn   sq     $;3$;5+<KKk*KKd#KKe$KKfT?;<r(   c                   U R                   R                  5        HQ  u  p#UR                  U5      (       d  M  US:w  a   SR                  X![	        U5      S /5      s  $ U[	        U5      S s  $    U R
                  R                  U5      $ )zRCompute qname for a uri using our extra namespaces,
or the given namespace manager :N)r   rA   
startswithjoinr*   r   qname_strict)r   r9   prenss       r%   r6   XMLWriter.qnamew   sv     }}**,GC~~b!!"988Sc"gi.$9::s2wy>) - ww##C((r(   )r   r   r   r   r8   r   )N   N)
r   z	IO[bytes]r   r   r   Optional[str]r    intr   zOptional[Dict[str, Namespace]])returnstr)rd   None)r9   re   rd   rf   )N)r9   rb   rd   rf   )r9   re   rD   re   rE   zDict[URIRef, str]rd   rf   )rK   zIterable[Tuple[str, str]]rd   rf   )r9   re   rR   re   rd   rf   )rC   re   rd   rf   )r9   re   rd   re   )__name__
__module____qualname____firstlineno____doc__r&   _XMLWriter__get_indentpropertyr5   r4   r:   r=   rH   rK   rB   rC   r6   __static_attributes__ r(   r%   r   r      s    6 #'37 ,  	
  1*. l#F#
  GI!$2C	4&>=)r(   )
__future__r   r   typingr   r   r   r   r   r	   r
   xml.sax.saxutilsr   r   rdflib.termr   rdflib.namespacer   r   __all__rV   r   ro   r(   r%   <module>rv      s>    "  K K K . < -/p) p)r(   