
    h-                         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      4S jjr SS\\\\	\\\
4   4      4S	 jjr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optionsc                 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        fC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\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   r1   r2   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)*
#+,r/   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 1WDNr/   )r   r   r   r'   r&   r%   r    r   r   r   r   r   r(   r   r#   r!   r$   r"   N)__name__
__module____qualname____firstlineno____doc__r5   r7   r   r   r   r6   r-   r*   r)   __static_attributes__ r/   r,   r   r      s     @D.(.( .( 	.(
 $sE#sE/$::;<.(b FJN-S%S%*@%@ ABN-`$%s $% $%r/   r   c                      ^  \ rS rSrSrU 4S jrSS\\\      4S jjr	S r
S\\   4S jrS	\4S
 jrS\\   4S jrS\S\4S jrS\4S jrS\4S jrS\4S jrS\4S jrS\4S jrS rS\4S jrS\4S jrSrU =r$ )Comments   z5
A class for writing the Excel XLSX Comments file.


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

N)superr-   
author_ids)r+   	__class__s    r,   r-   Comments.__init__   s     	r/   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+   rY   s     r,   _assemble_xml_fileComments._assemble_xml_file   se      M 	 	 	M* 	  /*% 	r/   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+   re   
attributess      r,   r]   Comments._write_comments  s$    K&'
J
3r/   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   )rf   r   rV   _write_authorr`   )r+   ri   author_countcommentr   s        r,   r^   Comments._write_authors
  sm    I&#G^^F!fOO&C*6'! ""6* $ 	)$r/   datac                 (    U R                  SU5        g )Nr   )_xml_data_element)r+   rp   s     r,   rl   Comments._write_author  s    x.r/   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)rf   r   rV   _write_commentr`   )r+   ri   rn   	author_ids       r,   r_   Comments._write_comment_list!  s[    M*#GI~~) OOGNN;	 3 $ 	-(r/   rn   rx   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refrv   authorIdrn   )r   r   r   appendrf   _write_textr`   )r+   rn   rx   r{   rg   s        r,   rw   Comments._write_comment0  sk    W[[9cl^
?zi[:;Iz2 	!)$r/   c                 j    U R                  S5        U R                  U5        U R                  S5        g )Nr   )rf   _write_text_rr`   r+   rn   s     r,   r~   Comments._write_text@  s.    F# 	7#&!r/   c                     U R                  S5        U R                  U5        U R                  UR                  5        U R	                  S5        g )Nr)rf   _write_r_pr_write_text_tr   r`   r   s     r,   r   Comments._write_text_rI  sB    C  	! 	7<<(#r/   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}   rr   )r+   r   rg   s      r,   r   Comments._write_text_tU  s1    
%%78sD5r/   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)	rf   	_write_szr%   _write_color_write_r_fontr&   _write_familyr'   r`   r   s     r,   r   Comments._write_r_pr^  sl    E" 	w(() 	 	7,,- 	7../% r/   r%   c                 2    SU4/nU R                  SU5        g )Nvalsz_xml_empty_tag)r+   r%   rg   s      r,   r   Comments._write_szp  s    i()
D*-r/   c                 .    S/nU R                  SU5        g )N)indexedQ   r   r   )r+   rg   s     r,   r   Comments._write_colorv  s    %&
GZ0r/   r&   c                 2    SU4/nU R                  SU5        g )Nr   rFontr   )r+   r&   rg   s      r,   r   Comments._write_r_font|  s    i()
GZ0r/   r'   c                 2    SU4/nU R                  SU5        g )Nr   familyr   )r+   r'   rg   s      r,   r   Comments._write_family  s    k*+
Hj1r/   )rV   rI   )rJ   rK   rL   rM   rN   r-   r   r   r   rb   r]   r^   r7   rl   r_   r5   rw   r~   r   r   r   r6   r   r   r   r   rO   __classcell__)rW   s   @r,   rR   rR      s    k9J0K :4%4+< %&/# /)[0A )%k %c % "; "
[ 
6# 6!; !$.5 .11s 12 2 2r/   rR   N)typingr   r   r   r   xlsxwriter.colorr    r	   utilityr
   r   r   r   	XMLwriterrR   rP   r/   r,   <module>r      s:    / . "  O Oj% j%d}2y"" }2r/   