
    >wg?                         d dl Z d dlmZ  e j                  d      Z e j                  d      Z e j                  d      Z G d de      Zy)    N)StringIOz(_x[0-9a-fA-F]{4}_)z([\x00-\x08\x0b-\x1f])z["&<>
]c                       e Zd ZdZd Zd Zd Zd Zd Zg fdZ	g fdZ
d	 Zg fd
Zg fdZg fdZg fdZg fdZd Zg fdZg fdZg fdZg fdZd Zd Zed        Zy)	XMLwriterz#
    Simple XML writer class.

    c                      d | _         d| _        y NFfhinternal_fhselfs    K/var/www/horilla/myenv/lib/python3.12/site-packages/xlsxwriter/xmlwriter.py__init__zXMLwriter.__init__   s         c                      || _         d| _        y r   r   )r   
filehandles     r   _set_filehandlezXMLwriter._set_filehandle   s     r   c                 v    t        |t              rd| _        || _        y d| _        t	        |dd      | _        y )NFTwzutf-8)encoding)
isinstancer   r
   r	   open)r   filenames     r   _set_xml_writerzXMLwriter._set_xml_writer$   s3    h)$DDG#D8S7;DGr   c                 R    | j                   r| j                  j                          y y )N)r
   r	   closer   s    r   
_xml_closezXMLwriter._xml_close-   s    GGMMO r   c                 :    | j                   j                  d       y )Nz8<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
r	   writer   s    r   _xml_declarationzXMLwriter._xml_declaration2   s    UVr   c                     |D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  j                  d|z         y N =""z<%s>_escape_attributesr	   r   r   tag
attributeskeyvalues        r   _xml_start_tagzXMLwriter._xml_start_tag6   sJ    $ 	-JC++E2Ee,,C	- 	fsl#r   c                 l    |D ]  \  }}|d|d|dz  } | j                   j                  d|z         y r"   r   r(   s        r   _xml_start_tag_unencodedz"XMLwriter._xml_start_tag_unencoded>   s<     % 	-JCe,,C	- 	fsl#r   c                 @    | j                   j                  d|z         y )Nz</%s>r   )r   r)   s     r   _xml_end_tagzXMLwriter._xml_end_tagG   s    gm$r   c                     |D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  j                  d|z         y Nr#   r$   r%   z<%s/>r&   r(   s        r   _xml_empty_tagzXMLwriter._xml_empty_tagK   sJ    $ 	-JC++E2Ee,,C	- 	gm$r   c                 l    |D ]  \  }}|d|d|dz  } | j                   j                  d|z         y r3   r   r(   s        r   _xml_empty_tag_unencodedz"XMLwriter._xml_empty_tag_unencodedS   s<     % 	-JCe,,C	- 	gm$r   c           	          |}|D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  |      }| j                  |      }| j                  j	                  d|d|d|d       y )Nr#   r$   r%   <>z</)r'   _escape_data_escape_control_charactersr	   r   )r   r)   datar*   end_tagr+   r,   s          r   _xml_data_elementzXMLwriter._xml_data_element\   sr    $ 	-JC++E2Ee,,C	-   &..t4sD':;r   c                     d}|D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  j                  d||fz         y )N r#   r$   r%   z<c%s t="s"><v>%d</v></c>r&   )r   indexr*   attrr+   r,   s         r   _xml_string_elementzXMLwriter._xml_string_elementi   sU    $ 	.JC++E2E#u--D	. 	4e}DEr   c                     d}|D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  |      }| j                  j                  d|d|d       y )Nr@   r#   r$   r%   z<si><tr9   z	</t></si>r'   r:   r	   r   r   stringr*   rB   r+   r,   s         r   _xml_si_elementzXMLwriter._xml_si_elements   s`    $ 	.JC++E2E#u--D	. ""6*D&ABr   c                 @    | j                   j                  d|z         y )Nz<si>%s</si>r   )r   rG   s     r   _xml_rich_si_elementzXMLwriter._xml_rich_si_element   s     	'&01r   c                     d}|D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  j                  d||fz         y )Nr@   r#   r$   r%   z<c%s><v>%.16G</v></c>r&   )r   numberr*   rB   r+   r,   s         r   _xml_number_elementzXMLwriter._xml_number_element   sU    $ 	.JC++E2E#u--D	. 	1T6NBCr   c           
          d}|D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  j                  d|d| j                  |      d| j                  |      d       y )	Nr@   r#   r$   r%   <cz><f>z</f><v>z</v></c>)r'   r	   r   r:   )r   formularesultr*   rB   r+   r,   s          r   _xml_formula_elementzXMLwriter._xml_formula_element   sn    $ 	.JC++E2E#u--D	. 	T&&w/1B1B61JL	
r   c           	          d}d}|rd}|D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  |      }| j                  j                  d|d|d|d	       y )
Nr@   z xml:space="preserve"r#   r$   r%   rO   z t="inlineStr"><is><tr9   z</t></is></c>rE   )r   rG   preserver*   rB   t_attrr+   r,   s           r   _xml_inline_stringzXMLwriter._xml_inline_string   st     ,F$ 	.JC++E2E#u--D	. ""6*AEvvV	
r   c                     d}|D ]"  \  }}| j                  |      }|d|d|dz  }$ | j                  j                  d|d|d       y )Nr@   r#   r$   r%   rO   z t="inlineStr"><is>z	</is></c>r&   rF   s         r   _xml_rich_inline_stringz!XMLwriter._xml_rich_inline_string   sP    $ 	.JC++E2E#u--D	. 	$OPr   c                     	 t         j                  |      s|S 	 |j                  dd      j                  dd      j                  dd      j                  dd      j                  d	d
      }|S # t        $ r |cY S w xY w)N&&amp;r%   z&quot;r8   &lt;r9   &gt;
z&#xA;xml_escapessearch	TypeErrorreplace)r   	attributes     r   r'   zXMLwriter._escape_attributes   s    	%%i0   1 c7+WS(#WS&!WS&!WT7# 	   		s   A. .A<;A<c                     	 t         j                  |      s|S 	 |j                  dd      j                  dd      j                  dd      }|S # t        $ r |cY S w xY w)NrZ   r[   r8   r\   r9   r]   r_   )r   r<   s     r   r:   zXMLwriter._escape_data   sf    	%%d+ ,
 ||C)11#v>FFsFS	  	K	s   A AAc                     	 t         j                  d|       } t        j                  d |       } | j	                  dd      j	                  dd      } | S # t        $ r | cY S w xY w)Nz_x005F\1c                 <    dt        | j                  d            z  S )Nz_x%04X_   )ordgroup)matchs    r   <lambda>z6XMLwriter._escape_control_characters.<locals>.<lambda>   s    )c%++a.&99 r   u   ￾_xFFFE_u   ￿_xFFFF_)re_control_chars_1subrb   re_control_chars_2rc   )r<   s    r   r;   z$XMLwriter._escape_control_characters   sj    	%))+t<D
 "%%94

 ||Hi0889M  	K	s   A A! A!N)__name__
__module____qualname____doc__r   r   r   r   r    r-   r/   r1   r4   r6   r>   rC   rH   rJ   rM   rR   rV   rX   r'   r:   staticmethodr;    r   r   r   r      s    
!!
<
W .0 $ 8: $% .0 % 8: % 79 < 57 F 24 
C2
 68 D @B 
 ?A 
& :< Q"  r   r   )	reior   compilero   rq   r`   objectr   rw   r   r   <module>r|      sQ    
   RZZ 56 RZZ 9: bjj$U Ur   