
    fh                         d Z ddlmZ ddlmZ ddlmZmZ ddlmZm	Z	m
Z
 ddlmZmZ  G d de          Z G d	 d
e          ZdS )z
RichText definition
    copy)NUMERIC_TYPES)
InlineFontText)StrictStringTyped)Element
whitespacec                   \    e Zd ZdZ ee          Z e            Zd Z	d Z
d Zd Zd ZdS )		TextBlockzv Represents text string in a specific format

    This class is used as part of constructing a rich text strings.
    )expected_typec                 "    || _         || _        d S N)fonttext)selfr   r   s      N/var/www/histauto/venv/lib/python3.11/site-packages/openpyxl/cell/rich_text.py__init__zTextBlock.__init__   s    				    c                 B    | j         |j         k    o| j        |j        k    S r   )r   r   )r   others     r   __eq__zTextBlock.__eq__   s    yEJ&B49
+BBr   c                     | j         S )zJust retun the text)r   r   s    r   __str__zTextBlock.__str__"   s
    yr   c                 t    | j         t                      k    r| j         pd}| j        j         d| j         d| S )Ndefaultz text=z, font=)r   r   	__class____name__r   )r   r   s     r   __repr__zTextBlock.__repr__'   sA    yJLL(6TYC).)IIII4IIIr   c                     t          d          }|                    | j                            d                     t          d          }| j        |_        t          |           |                    |           |S )NrrPr)tagnamet)r   appendr   to_treer   r   )r   elr'   s      r   r)   zTextBlock.to_tree,   se    S\\
		$)##E#22333CLL1
		!	r   N)r!   
__module____qualname____doc__r
   r   r   r	   r   r   r   r   r"   r)    r   r   r   r      s          5z***D688D  
C C C  
J J J
    r   r   c                        e Zd ZdZ fdZed             Zed             Zed             Z fdZ	 fdZ
d Z fd	Z fd
Z fdZd Zd Zd Zd Z xZS )CellRichTexta  Represents a rich text string.

    Initialize with a list made of pure strings or :class:`TextBlock` elements
    Can index object to access or modify individual rich text elements
    it also supports the + and += operators between rich text strings
    There are no user methods for this class

    operations which modify the string will generally call an optimization pass afterwards,
    that merges text blocks with identical formats, consecutive pure text strings,
    and remove empty strings and empty text blocks
    c                 ^   t          |          dk    r]|d         }t          |t          t          f          rt                              |           n8t                              |           |g}nt                              |           t                                          |           d S )N   r   )	len
isinstancelisttupler0   _check_rich_text_check_elementsuperr   )r   argsr    s     r   r   zCellRichText.__init__I   s    t99>>7D$u.. --d3333++D111v))$///r   c                 n    t          |t          t          t          f          st	          d|           d S )NzIllegal CellRichText element )r4   strr   r   	TypeError)clsvalues     r   r8   zCellRichText._check_elementV   s?    %#y-!@AA 	ECECCDDD	E 	Er   c                 D    |D ]}t                               |           d S r   )r0   r8   )r>   	rich_textr'   s      r   r7   zCellRichText._check_rich_text\   s2     	+ 	+A''****	+ 	+r   c                 p   t          j        |          }|j        r|j                            dd          fS g }|j        D ]k}d}|j        r|j                            dd          }|j        r)|                    t          |j        |                     V|                    |           l | |          S )Nx005F_ )r   	from_treer'   replacer$   r%   r(   r   )r>   noder   sr$   r'   s         r   rE   zCellRichText.from_treea   s    ~d##6 	3FNN8R0022 	 	AAs .CKK"--u 15!,,----s1vvr   c                    d }t          t                                }| D ]}t          |t                    r|sn|j        s#t          |          t          |          k    rAt          |t                    r||z  }^|j        |j        k    r|xj        |j        z  c_        |r|                    |           |}|r|                    |           t                      	                    t          d           |           | S r   )r0   r6   r4   r<   r   typer   r(   r9   __setitem__slice)r   last_tlr'   r    s       r   _optzCellRichText._opts   s   !! 	 	A!S!!  V F||tAww&&a%% aKF[AF**KK16)KK !   FF 	HHVE$KK+++r   c                     t                               |           t                                          d t	          |          D                        |                                 S )Nc                 ,    g | ]}t          |          S r.   r   .0es     r   
<listcomp>z)CellRichText.__iadd__.<locals>.<listcomp>   s    555a$q''555r   )r0   r7   r9   __iadd__r5   rO   r   argr    s     r   rV   zCellRichText.__iadd__   sR    %%c***55499555666yy{{r   c                     t          d t          |           t          |          z   D                                                       S )Nc                 ,    g | ]}t          |          S r.   r   rR   s     r   rU   z(CellRichText.__add__.<locals>.<listcomp>   s    EEET!WWEEEr   )r0   r5   rO   )r   rX   s     r   __add__zCellRichText.__add__   s<    EEd4jj499.DEEEFFKKMMMr   c                     t                               |           t                                          ||           |                                  d S r   )r0   r8   r9   rK   rO   )r   indxvalr    s      r   rK   zCellRichText.__setitem__   sB    ##C(((D#&&&		r   c                 ~    t                               |           t                                          |           d S r   )r0   r8   r9   r(   rW   s     r   r(   zCellRichText.append   s3    ##C(((sr   c                 ~    t                               |           t                                          |           d S r   )r0   r7   r9   extendrW   s     r   ra   zCellRichText.extend   s3    %%c***sr   c                 f    d                     d                    d | D                                 S )NzCellRichText([{}])z, c              3   4   K   | ]}t          |          V  d S r   )reprrS   rH   s     r   	<genexpr>z(CellRichText.__repr__.<locals>.<genexpr>   s(      5L5L!d1gg5L5L5L5L5L5Lr   )formatjoinr   s    r   r"   zCellRichText.__repr__   s1    #**4995L5Lt5L5L5L+M+MNNNr   c                 @    d                     d | D                       S )NrD   c                 ,    g | ]}t          |          S r.   r<   re   s     r   rU   z(CellRichText.__str__.<locals>.<listcomp>   s    ---1A---r   )rh   r   s    r   r   zCellRichText.__str__   s#    ww-----...r   c                     d | D             S )zv
        Returns a list of the strings contained.
        The main reason for this is to make editing easier.
        c                 ,    g | ]}t          |          S r.   rk   re   s     r   rU   z(CellRichText.as_list.<locals>.<listcomp>   s    %%%1A%%%r   r.   r   s    r   as_listzCellRichText.as_list   s    
 &%%%%%r   c                 d   t          d          }| D ]}t          |t                    r(|                    |                                           ?t          d          }t          d          }||_        t          |           |                    |           |                    |           |S )z4
        Return the full XML representation
        isr$   r'   )r   r4   r   r(   r)   r   r   )r   	containerobjr*   r'   s        r   r)   zCellRichText.to_tree   s     DMM	 
	% 
	%C#y)) 	%  //// S\\CLL1		!  $$$$r   )r!   r+   r,   r-   r   classmethodr8   r7   rE   rO   rV   r[   rK   r(   ra   r"   r   rn   r)   __classcell__)r    s   @r   r0   r0   <   sd       
 

 
 
 
 
 E E [E
 + + [+   ["    4    N N N        
    
O O O/ / /& & &      r   r0   N)r-   r   openpyxl.compatr   openpyxl.cell.textr   r   openpyxl.descriptorsr   r	   r
   openpyxl.xml.functionsr   r   r   r5   r0   r.   r   r   <module>ry      s          ) ) ) ) ) ) / / / / / / / /          7 6 6 6 6 6 6 6" " " " " " " "VM M M M M4 M M M M Mr   