o
    ]i                     @   sD   d dl Z d dlmZ e dZe dZe dZG dd dZdS )    N)StringIOz(_x[0-9a-fA-F]{4}_)z([\x00-\x08\x0b-\x1f])z["&<>
]c                   @   s  e Zd ZdZd.ddZd.ddZd.dd	Zd.d
dZd.ddZg fd.ddZ	g fd.ddZ
d.ddZg fd.ddZg fd.ddZg fd.ddZg fd.ddZg fd.ddZd.ddZg fd.d d!Zg fd.d"d#Zg fd.d$d%Zg fd.d&d'Zd(d) Zd*d+ Zed,d- ZdS )/	XMLwriterz#
    Simple XML writer class.

    returnNc                 C   s   d | _ d| _d S NFfhinternal_fhself r   Y/var/www/html/stock_analysis/be/venv/lib/python3.10/site-packages/xlsxwriter/xmlwriter.py__init__   s   
zXMLwriter.__init__c                 C   s   || _ d| _d S r   r   )r
   
filehandler   r   r   _set_filehandle"   s   
zXMLwriter._set_filehandlec                 C   s4   t |trd| _|| _d S d| _t|ddd| _d S )NFTwzutf-8)encoding)
isinstancer   r   r   open)r
   filenamer   r   r   _set_xml_writer'   s
   

zXMLwriter._set_xml_writerc                 C   s   | j r
| j  d S d S )N)r   r   closer	   r   r   r   
_xml_close1   s   zXMLwriter._xml_closec                 C   s   | j d d S )Nz8<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
r   writer	   r   r   r   _xml_declaration6   s   zXMLwriter._xml_declarationc                 C   F   |D ]\}}|  |}|d| d| d7 }q| jd| d d S N =""<>_escape_attributesr   r   r
   tag
attributeskeyvaluer   r   r   _xml_start_tag:      
zXMLwriter._xml_start_tagc                 C   <   |D ]\}}|d| d| d7 }q| j d| d d S r   r   r$   r   r   r   _xml_start_tag_unencodedB      z"XMLwriter._xml_start_tag_unencodedc                 C      | j d| d d S )N</r!   r   )r
   r%   r   r   r   _xml_end_tagK   s   zXMLwriter._xml_end_tagc                 C   r   Nr   r   r   r    z/>r"   r$   r   r   r   _xml_empty_tagO   r*   zXMLwriter._xml_empty_tagc                 C   r+   r1   r   r$   r   r   r   _xml_empty_tag_unencodedW   r-   z"XMLwriter._xml_empty_tag_unencodedc              	   C   sj   |}|D ]\}}|  |}|d| d| d7 }q| |}| |}| jd| d| d| d d S )Nr   r   r   r    r!   r/   )r#   _escape_data_escape_control_charactersr   r   )r
   r%   datar&   end_tagr'   r(   r   r   r   _xml_data_element`   s   


$zXMLwriter._xml_data_elementc                 C   P   d}|D ]\}}|  |}|d| d| d7 }q| jd| d| d d S )N r   r   r   <cz
 t="s"><v></v></c>r"   )r
   indexr&   attrr'   r(   r   r   r   _xml_string_elementm   
   
zXMLwriter._xml_string_elementc                 C   sZ   d}|D ]\}}|  |}|d| d| d7 }q| |}| jd| d| d d S )Nr:   r   r   r   z<si><tr!   z	</t></si>r#   r4   r   r   r
   stringr&   r>   r'   r(   r   r   r   _xml_si_elementw   s   

zXMLwriter._xml_si_elementc                 C   r.   )Nz<si>z</si>r   )r
   rC   r   r   r   _xml_rich_si_element   s   zXMLwriter._xml_rich_si_elementc                 C   sR   d}|D ]\}}|  |}|d| d| d7 }q| jd| d|dd d S )	Nr:   r   r   r   r;   z><v>z.16Gr<   r"   )r
   numberr&   r>   r'   r(   r   r   r   _xml_number_element   s
   
 zXMLwriter._xml_number_elementc              	   C   sj   d}|D ]\}}|  |}|d| d| d7 }q| |}| |}| jd| d| d| d d S )	Nr:   r   r   r   r;   z><f>z</f><v>r<   rA   )r
   formularesultr&   r>   r'   r(   r   r   r   _xml_formula_element   s   


$zXMLwriter._xml_formula_elementc              	   C   sl   d}d}|rd}|D ]\}}|  |}|d| d| d7 }q
| |}| jd| d| d| d	 d S )
Nr:   z xml:space="preserve"r   r   r   r;   z t="inlineStr"><is><tr!   z</t></is></c>rA   )r
   rC   preserver&   r>   t_attrr'   r(   r   r   r   _xml_inline_string   s   

$zXMLwriter._xml_inline_stringc                 C   r9   )Nr:   r   r   r   r;   z t="inlineStr"><is>z	</is></c>r"   rB   r   r   r   _xml_rich_inline_string   r@   z!XMLwriter._xml_rich_inline_stringc                 C   s\   z
t |s	|W S W n ty   | Y S w |ddddddddd	d
}|S )N&&amp;r   z&quot;r    &lt;r!   &gt;
z&#xA;xml_escapessearch	TypeErrorreplace)r
   	attributer   r   r   r#      s   

zXMLwriter._escape_attributesc                 C   sL   z
t |s	|W S W n ty   | Y S w |dddddd}|S )NrO   rP   r    rQ   r!   rR   rT   )r
   r6   r   r   r   r4      s   
zXMLwriter._escape_datac                 C   sP   zt d| } W n ty   |  Y S w tdd | } | dddd} | S )Nz_x005F\1c                 S   s   dt | dddS )N_x   04X_)ordgroup)matchr   r   r   <lambda>   s    z6XMLwriter._escape_control_characters.<locals>.<lambda>u   ￾_xFFFE_u   ￿_xFFFF_)re_control_chars_1subrW   re_control_chars_2rX   )r6   r   r   r   r5      s   z$XMLwriter._escape_control_characters)r   N)__name__
__module____qualname____doc__r   r   r   r   r   r)   r,   r0   r2   r3   r8   r?   rD   rE   rG   rJ   rM   rN   r#   r4   staticmethodr5   r   r   r   r   r      s0    






		



r   )reior   compilerd   rf   rU   r   r   r   r   r   <module>   s   


