
    Mi-                         S SK JrJrJrJr  S SKJr  SSKJr  SSK	J
r
JrJr   " S S5      r " S S	\R                  5      rg
)    )DictListOptionalUnion)Color   )	xmlwriter)_preserve_whitespacexl_cell_to_rowcolxl_rowcol_to_cellc                       \ rS rSrSr SS\S\S\S\\\\	\\\
4   4      SS4
S	 jjr SS\\\\	\\\
4   4      SS4S
 jjrS\S\SS4S jrSrg)CommentType   z8
A class to represent a comment in an Excel worksheet.

Nrowcoltextoptionsreturnc                 z   Xl         X l        X0l        SU l        [	        S5      U l        SU l        SU l        SU l        SU l	        SU l
        SU l        SU l        SU l        SU l        SU l        SU l        S	U l        / U l        U R'                  U R                   U R                  5        U R)                  U5        g)
z
Initialize a Comment instance.

Args:
    row (int): The row number of the comment.
    col (int): The column number of the comment.
    text (str): The text of the comment.
    options (dict): Additional options for the comment.
Nz#ffffe1r      J   r      Tahoma   )r   r   r   authorr   color	start_row	start_col
is_visiblewidthheightx_scaley_scalex_offsety_offset	font_size	font_namefont_familyverticesset_offsets_set_user_options)selfr   r   r   r   s        m/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/xlsxwriter/comments.py__init__CommentType.__init__   s      	%)!),
*.
 !& !13 	488, 	w'    c                    Uc  gUR                  S5      nU(       a!  [        U[        [        45      (       a  X l        UR                  S5      nU(       a!  [        U[        [        45      (       a  X0l        UR                  S5      nU(       a  [        U[        5      (       a  X@l        UR                  S5      nU(       a  [        U[        5      (       a  XPl        UR                  S5      nU(       a  [        U[        5      (       a  X`l        UR                  S5      nU(       a  [        U[        5      (       a  Xpl	        UR                  S5      nU(       a!  [        U[        [        45      (       a  Xl
        UR                  S	5      n	U	(       a  [        U	[        5      (       a  Xl        UR                  S
5      n
U
(       a  [        U
[        5      (       a  Xl        UR                  S5      nU(       a  [        U[        5      (       a  Xl        UR                  S5      nUb  [        U[        5      (       a  Xl        UR                  S5      (       a  ["        R$                  " US   5      U l        UR                  S5      nU(       a.  [        U[        5      (       a  [)        U5      u  pvXpl	        X`l        UR                  S5      nU(       a/  [        U[        [        45      (       a  U R                  U-  U l        UR                  S5      nU(       a/  [        U[        [        45      (       a  U R
                  U-  U l        [        SU R                  -   5      U l        [        SU R
                  -   5      U l        g)zP
This method handles the additional optional parameters to
``write_comment()``.
Nr    r!   r$   r%   r   r   r&   r'   r(   r   visibler   
start_cellr"   r#   g      ?)get
isinstanceintfloatr    r!   r$   r%   r   r   r&   strr'   r(   r   boolr   r   _from_valuer   r   )r,   r   r    r!   r$   r%   r   r   r&   r'   r(   r   r2   r3   r"   r#   s                   r-   r+   CommentType._set_user_optionsM   s    ? G$ZU|44JX&j#u66 K;;z*
8S11$M;;z*
8S11$MKK,	Is33&NKK,	Is33&NKK,	IU|<<&NKK,	Is33&Nkk-0:k377*X&j-- K++i(:gt#<#<%O;;w**77+;<DJ [[.
*Z55%6z%B"Y&N&N ++i(z'C<88g-DJ++i(z'C<88++/DK tzz)*
#+,r0   c                 J   SnSnU R                   S:X  a  SU l        SU l        OU R                   US-
  :X  a  SU l        US-
  U l        O[U R                   US-
  :X  a  SU l        US-
  U l        O6U R                   US	-
  :X  a  S
U l        US-
  U l        OSU l        US	-
  U l        U R                  US-
  :X  a  SU l        US-
  U l        gU R                  US-
  :X  a  SU l        US-
  U l        gU R                  US	-
  :X  a  SU l        US-
  U l        gSU l        US	-   U l        g)z
Set the default start cell and offsets for the comment. These are
generally a fixed offset relative to the parent cell. However there are
some edge cases for cells at the, well, edges.
i   i @  r   r               r         
   1         N)r   r%   r   r   r$   r   )r,   r   r   row_maxcol_maxs        r-   r*   CommentType.set_offsets   s    88q=DMDNXX1$DM$q[DNXX1$DM$q[DNXX1$DM$q[DNDM 1WDN88w{"DM$q[DNXX1$DM$q[DNXX1$DM$q[DNDM 1WDNr0   )r   r   r   r(   r'   r&   r!   r   r   r   r   r   r)   r    r$   r"   r%   r#   N)__name__
__module____qualname____firstlineno____doc__r6   r8   r   r   r   r7   r.   r+   r*   __static_attributes__ r0   r-   r   r      s     @D.(.( .( 	.(
 $sE#sE/$::;<.( 
.(b FJN-S%S%*@%@ ABN-	N-`$%s $% $% $%r0   r   c                   >  ^  \ rS rSrSrSU 4S jjr SS\\\      SS4S jjr	SS jr
S	\\   SS4S
 jrS\SS4S jrS	\\   SS4S jrS\S\SS4S jrS\SS4S jrS\SS4S jrS\SS4S jrS\SS4S jrS\SS4S jrSS jrS\SS4S jrS\SS4S jrSrU =r$ ) Comments   z5
A class for writing the Excel XLSX Comments file.


r   Nc                 0   > [         TU ]  5         0 U l        g)z
Constructor.

N)superr.   
author_ids)r,   	__class__s    r-   r.   Comments.__init__   s     	r0   comments_datac                     Uc  / nU R                  5         U R                  5         U R                  U5        U R                  U5        U R	                  S5        U R                  5         g )Ncomments)_xml_declaration_write_comments_write_authors_write_comment_list_xml_end_tag
_xml_close)r,   rZ   s     r-   _assemble_xml_fileComments._assemble_xml_file   se    
  M 	 	 	M* 	  /*% 	r0   c                 6    SnSU4/nU R                  SU5        g )Nz9http://schemas.openxmlformats.org/spreadsheetml/2006/mainxmlnsr\   )_xml_start_tag)r,   rf   
attributess      r-   r^   Comments._write_comments  s$    K&'
J
3r0   comment_datac                     SnU R                  S5        U HI  nUR                  nUc  M  X@R                  ;  d  M%  X R                  U'   US-  nU R                  U5        MK     U R	                  S5        g )Nr   authorsr   )rg   r   rW   _write_authorra   )r,   rj   author_countcommentr   s        r-   r_   Comments._write_authors  sm    I&#G^^F!fOO&C*6'! ""6* $ 	)$r0   datac                 (    U R                  SU5        g )Nr   )_xml_data_element)r,   rq   s     r-   rm   Comments._write_author  s    x.r0   c                     U R                  S5        U H<  nSnUR                  b  U R                  UR                     nU R                  X#5        M>     U R	                  S5        g )NcommentList)rg   r   rW   _write_commentra   )r,   rj   ro   	author_ids       r-   r`   Comments._write_comment_list#  s[    M*#GI~~) OOGNN;	 3 $ 	-(r0   ro   ry   c                     [        UR                  UR                  5      nSU4/nUS:w  a  UR                  SU 45        U R	                  SU5        U R                  U5        U R                  S5        g )Nrefrw   authorIdro   )r   r   r   appendrg   _write_textra   )r,   ro   ry   r|   rh   s        r-   rx   Comments._write_comment2  sk    W[[9cl^
?zi[:;Iz2 	!)$r0   c                 j    U R                  S5        U R                  U5        U R                  S5        g )Nr   )rg   _write_text_rra   r,   ro   s     r-   r   Comments._write_textB  s.    F# 	7#&!r0   c                     U R                  S5        U R                  U5        U R                  UR                  5        U R	                  S5        g )Nr)rg   _write_r_pr_write_text_tr   ra   r   s     r-   r   Comments._write_text_rK  sB    C  	! 	7<<(#r0   r   c                 n    / n[        U5      (       a  UR                  S5        U R                  SX5        g )N)z	xml:spacepreservet)r
   r~   rs   )r,   r   rh   s      r-   r   Comments._write_text_tW  s1    
%%78sD5r0   c                 
   U R                  S5        U R                  UR                  5        U R                  5         U R	                  UR
                  5        U R                  UR                  5        U R                  S5        g )NrPr)	rg   	_write_szr&   _write_color_write_r_fontr'   _write_familyr(   ra   r   s     r-   r   Comments._write_r_pr`  sl    E" 	w(() 	 	7,,- 	7../% r0   r&   c                 2    SU4/nU R                  SU5        g )Nvalsz_xml_empty_tag)r,   r&   rh   s      r-   r   Comments._write_szr  s    i()
D*-r0   c                 .    S/nU R                  SU5        g )N)indexedQ   r   r   )r,   rh   s     r-   r   Comments._write_colorx  s    %&
GZ0r0   r'   c                 2    SU4/nU R                  SU5        g )Nr   rFontr   )r,   r'   rh   s      r-   r   Comments._write_r_font~  s    i()
GZ0r0   r(   c                 2    SU4/nU R                  SU5        g )Nr   familyr   )r,   r(   rh   s      r-   r   Comments._write_family  s    k*+
Hj1r0   )rW   )r   NrJ   )rK   rL   rM   rN   rO   r.   r   r   r   rc   r^   r_   r8   rm   r`   r6   rx   r   r   r   r   r7   r   r   r   r   rP   __classcell__)rX   s   @r-   rS   rS      s#     <@%d;&78	>4%4+< % %&/# /$ /)[0A )d )%k %c %d % "; "4 "
[ 
T 
6# 6$ 6!; !4 !$.5 .T .11s 1t 12 2 2 2r0   rS   N)typingr   r   r   r   xlsxwriter.colorr    r	   utilityr
   r   r   r   	XMLwriterrS   rQ   r0   r-   <module>r      s:    / . "  O Oj% j%d2y"" 2r0   