o
    È·eÞ  ã                   @   s:   d dl mZ d dlmZ d dlmZ G dd„ dejƒZdS )é   )Ú	xmlwriter)Úpreserve_whitespace)Úxl_rowcol_to_cellc                       s”   e Zd ZdZ‡ fdd„Zg fdd„Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z‡  ZS ) ÚCommentsz=
    A class for writing the Excel XLSX Comments file.


    c                    s   t t| ƒ ¡  i | _dS )z
        Constructor.

        N)Úsuperr   Ú__init__Ú
author_ids)Úself©Ú	__class__© úJ/var/www/ideatree/venv/lib/python3.10/site-packages/xlsxwriter/comments.pyr      s   
zComments.__init__c                 C   s:   |   ¡  |  ¡  |  |¡ |  |¡ |  d¡ |  ¡  d S )NÚcomments)Ú_xml_declarationÚ_write_commentsÚ_write_authorsÚ_write_comment_listÚ_xml_end_tagÚ
_xml_close)r	   Úcomments_datar   r   r   Ú_assemble_xml_file*   s   


zComments._assemble_xml_filec                 C   s   d}d|fg}|   d|¡ d S )Nz9http://schemas.openxmlformats.org/spreadsheetml/2006/mainÚxmlnsr   )Ú_xml_start_tag)r	   r   Ú
attributesr   r   r   r   D   s   
zComments._write_commentsc                 C   s\   d}|   d¡ |D ]}|d }|d ur&|| jvr&|| j|< |d7 }|  |¡ q	|  d¡ d S )Né    Úauthorsé   r   )r   r   Ú_write_authorr   )r	   Úcomment_dataÚauthor_countÚcommentÚauthorr   r   r   r   L   s   


€zComments._write_authorsc                 C   s   |   d|¡ d S )Nr!   )Ú_xml_data_element)r	   Údatar   r   r   r   _   s   zComments._write_authorc                 C   sŒ   |   d¡ |D ]7}|d }|d }|d }|d }|d }|d }|d }	d }
|d ur0| j| }
|||	f}|  ||||
|¡ q|  d¡ d S )	NÚcommentListr   r   é   r   é   é   é   )r   r   Ú_write_commentr   )r	   r   r    ÚrowÚcolÚtextr!   Ú	font_nameÚ	font_sizeÚfont_familyÚ	author_idÚfontr   r   r   r   c   s   


zComments._write_comment_listc                 C   sP   t ||ƒ}d|fg}|d ur| d|f¡ |  d|¡ |  ||¡ |  d¡ d S )NÚrefÚauthorIdr    )r   Úappendr   Ú_write_textr   )r	   r*   r+   r,   r0   r1   r2   r   r   r   r   r)   {   s   

zComments._write_commentc                 C   s$   |   d¡ |  ||¡ |  d¡ d S )Nr,   )r   Ú_write_text_rr   ©r	   r,   r1   r   r   r   r5   ‹   s   
zComments._write_textc                 C   s,   |   d¡ |  |¡ |  |¡ |  d¡ d S )NÚr)r   Ú_write_r_prÚ_write_text_tr   r7   r   r   r   r6   ”   s   


zComments._write_text_rc                 C   s(   g }t |ƒr| d¡ |  d||¡ d S )N)z	xml:spaceÚpreserveÚt)r   r4   r"   )r	   r,   r   r   r   r   r:       s   
zComments._write_text_tc                 C   sJ   |   d¡ |  |d ¡ |  ¡  |  |d ¡ |  |d ¡ |  d¡ d S )NÚrPrr   r   r%   )r   Ú	_write_szÚ_write_colorÚ_write_r_fontÚ_write_familyr   )r	   r1   r   r   r   r9   ©   s   
zComments._write_r_prc                 C   ó   d|fg}|   d|¡ d S )NÚvalÚsz©Ú_xml_empty_tag)r	   r.   r   r   r   r   r>   »   ó   
zComments._write_szc                 C   s   dg}|   d|¡ d S )N)ÚindexedéQ   ÚcolorrE   )r	   r   r   r   r   r?   Á   s   zComments._write_colorc                 C   rB   )NrC   ÚrFontrE   )r	   r-   r   r   r   r   r@   Ç   rG   zComments._write_r_fontc                 C   rB   )NrC   ÚfamilyrE   )r	   r/   r   r   r   r   rA   Í   rG   zComments._write_family)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r)   r5   r6   r:   r9   r>   r?   r@   rA   Ú__classcell__r   r   r
   r   r      s"    		r   N)Ú r   Úutilityr   r   Ú	XMLwriterr   r   r   r   r   Ú<module>   s   