
    ,h                         d dl Z d dlmZ  e j                  d      Z e j                  d      Z e j                  d      Z G d d      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    V/var/www/html/Resume-Scraper/venv/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_close1   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_declaration6   s    QRr   c                     |D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  j                  d| d       y N =""<>_escape_attributesr	   r   r   tag
attributeskeyvalues        r   _xml_start_tagzXMLwriter._xml_start_tag:   sX    $ 	'JC++E2EQse2eWA&&C	' 	#aj!r   c                 n    |D ]  \  }}|d| d| dz  } | j                   j                  d| d       y r"   r   r*   s        r   _xml_start_tag_unencodedz"XMLwriter._xml_start_tag_unencodedB   sJ     % 	'JCQse2eWA&&C	' 	#aj!r   c                 B    | j                   j                  d| d       y )N</r'   r   )r   r+   s     r   _xml_end_tagzXMLwriter._xml_end_tagK   s    3%qk"r   c                     |D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  j                  d| d       y Nr#   r$   r%   r&   z/>r(   r*   s        r   _xml_empty_tagzXMLwriter._xml_empty_tagO   sX    $ 	'JC++E2EQse2eWA&&C	' 	#bk"r   c                 n    |D ]  \  }}|d| d| dz  } | j                   j                  d| d       y r6   r   r*   s        r   _xml_empty_tag_unencodedz"XMLwriter._xml_empty_tag_unencodedW   sJ     % 	'JCQse2eWA&&C	' 	#bk"r   c           	          |}|D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  |      }| j                  |      }| j                  j	                  d| d| d| d       y )Nr#   r$   r%   r&   r'   r3   )r)   _escape_data_escape_control_charactersr	   r   )r   r+   datar,   end_tagr-   r.   s          r   _xml_data_elementzXMLwriter._xml_data_element`   s    $ 	'JC++E2EQse2eWA&&C	'   &..t4#avRy23r   c                     d}|D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  j                  d| d| d       y )N r#   r$   r%   <cz
 t="s"><v></v></c>r(   )r   indexr,   attrr-   r.   s         r   _xml_string_elementzXMLwriter._xml_string_elementm   sd    $ 	(JC++E2EauBugQ''D	( 	4&
5':;r   c                     d}|D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  |      }| j                  j                  d| d| d       y )NrA   r#   r$   r%   z<si><tr'   z	</t></si>r)   r;   r	   r   r   stringr,   rE   r-   r.   s         r   _xml_si_elementzXMLwriter._xml_si_elementw   st    $ 	(JC++E2EauBugQ''D	( ""6*tfAfXY78r   c                 B    | j                   j                  d| d       y )Nz<si>z</si>r   )r   rJ   s     r   _xml_rich_si_elementzXMLwriter._xml_rich_si_element   s     	VHE*+r   c                     d}|D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  j                  d| d|dd       y )	NrA   r#   r$   r%   rB   z><v>z.16GrC   r(   )r   numberr,   rE   r-   r.   s         r   _xml_number_elementzXMLwriter._xml_number_element   sf    $ 	(JC++E2EauBugQ''D	( 	4&VDM:;r   c           	          d}|D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  |      }| j                  |      }| j                  j                  d| d| d| d       y )	NrA   r#   r$   r%   rB   z><f>z</f><v>rC   rH   )r   formularesultr,   rE   r-   r.   s          r   _xml_formula_elementzXMLwriter._xml_formula_element   s    $ 	(JC++E2EauBugQ''D	( ##G,""6*4&WIWVHHEFr   c           	          d}d}|rd}|D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  |      }| j                  j                  d| d| d| d	       y )
NrA   z xml:space="preserve"r#   r$   r%   rB   z t="inlineStr"><is><tr'   z</t></is></c>rH   )r   rJ   preserver,   rE   t_attrr-   r.   s           r   _xml_inline_stringzXMLwriter._xml_inline_string   s     ,F$ 	(JC++E2EauBugQ''D	( ""6*4& 5fXQvhmTUr   c                     d}|D ]"  \  }}| j                  |      }|d| d| dz  }$ | j                  j                  d| d| d       y )NrA   r#   r$   r%   rB   z t="inlineStr"><is>z	</is></c>r(   rI   s         r   _xml_rich_inline_stringz!XMLwriter._xml_rich_inline_string   se    $ 	(JC++E2EauBugQ''D	( 	4& 3F89EFr   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;r&   &lt;r'   &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)Nr\   r]   r&   r^   r'   r_   ra   )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            ddS )N_x   04X_)ordgroup)matchs    r   <lambda>z6XMLwriter._escape_control_characters.<locals>.<lambda>   s    Bs5;;q>237q9 r   u   ￾_xFFFE_u   ￿_xFFFF_)re_control_chars_1subrd   re_control_chars_2re   )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/   r1   r4   r7   r9   r?   rF   rK   rM   rP   rT   rX   rZ   r)   r;   staticmethodr<    r   r   r   r      s    
!!
<
S .0 " 8: "# .0 # 8: # 79 4 57 < 24 
9,
 68 < @B 
G ?A V" :< G"  r   r   )reior   compilert   rv   rb   r   r|   r   r   <module>r      sO    
   RZZ 56 RZZ 9: bjj$S Sr   