
    ^b
                         d dl mZ d dlmZmZmZmZmZ d dlm	Z	 d dl
mZ ddlmZ d dlmZ  G d d	e          Z G d
 de          ZdS )    )OrderedDict)BoolStringSequenceAliasConvertible)ExtensionList)Serialisable   )Rule)MultiCellRangec                       e Zd ZdZ ee          Z ed          Z e	d          Z
 ee          Z ed          Zdd	Zd
 Zd Zd Zd ZdS )ConditionalFormattingconditionalFormatting)expected_typesqrefT)
allow_nonecfRule Nc                 0    || _         || _        || _        d S N)r   pivotr   )selfr   r   r   extLsts        >lib/python3.11/site-packages/openpyxl/formatting/formatting.py__init__zConditionalFormatting.__init__   s    

    c                 P    t          || j                  sdS | j        |j        k    S )NF)
isinstance	__class__r   )r   others     r   __eq__zConditionalFormatting.__eq__$   s*    %00 	5zU[((r   c                 D    t          t          | j                            S r   )hashstrr   r   s    r   __hash__zConditionalFormatting.__hash__*   s    C
OO$$$r   c                 N    d                     | j        j        | j                  S )Nz<{cls} {cells}>)clscells)formatr    __name__r   r&   s    r   __repr__zConditionalFormatting.__repr__.   s"     ''DN,C4:'VVVr   c                     || j         v S )zL
        Check whether a certain cell is affected by the formatting
        r   )r   coords     r   __contains__z"ConditionalFormatting.__contains__2   s     
""r   )r   Nr   N)r,   
__module____qualname__tagnamer   r   r   r   r*   r   r   r   r   r   rulesr   r"   r'   r-   r1   r   r   r   r   r      s        %GKn555EE'NNEDD!!!EXD)))FE(OOE   ) ) )% % %W W W# # # # #r   r   c                   F    e Zd ZdZd Zd Zd ZeZd Zd Z	d Z
d Zd	 Zd
S )ConditionalFormattingListzConditional formatting rules.c                 :    t                      | _        d| _        d S )Nr   )r   	_cf_rulesmax_priorityr&   s    r   r   z"ConditionalFormattingList.__init__=   s    $r   c                 @   |}t          |t                    rt          |          }t          |t                    st	          d          |}| xj        dz  c_        |j        s| j        |_        | j                            |g           	                    |           dS )zyAdd a rule such as ColorScaleRule, FormulaRule or CellIsRule

         The priority will be added automatically.
        z<Only instances of openpyxl.formatting.rule.Rule may be addedr   N)
r   r%   r   r   
ValueErrorr:   priorityr9   
setdefaultappend)r   range_stringr   cfrules        r   addzConditionalFormattingList.addB   s    
 lC(( 	5&|44B&$'' 	][\\\Q} 	. -DM!!"b))0066666r   c                 *    t          | j                  S r   )boolr9   r&   s    r   __bool__z"ConditionalFormattingList.__bool__T   s    DN###r   c                 *    t          | j                  S r   )lenr9   r&   s    r   __len__z!ConditionalFormattingList.__len__Z   s    4>"""r   c              #   ^   K   | j                                         D ]\  }}||_        |V  d S r   )r9   itemsr5   )r   rA   r5   s      r   __iter__z"ConditionalFormattingList.__iter__^   sC      --// 	 	IBBHHHHH	 	r   c                 f    t          |t                    rt          |          }| j        |         S )z0
        Get the rules for a cell range
        r/   )r   r%   r   r9   r   keys     r   __getitem__z%ConditionalFormattingList.__getitem__d   s3     c3 	3'c222C~c""r   c                 6    t          |          }| j        |= d S )Nr/   )r   r9   rN   s     r   __delitem__z%ConditionalFormattingList.__delitem__m   s"    ##...N3r   c                 2    |                      ||           dS )z-
        Add a rule for a cell range
        N)rC   )r   rO   rB   s      r   __setitem__z%ConditionalFormattingList.__setitem__r   s     	dr   N)r,   r2   r3   __doc__r   rC   rF   #_ConditionalFormattingList__nonzerorI   rL   rP   rR   rT   r   r   r   r7   r7   9   s        ''  
7 7 7$$ $ $ I# # #  # # #     
    r   r7   N)collectionsr   openpyxl.descriptorsr   r   r   r   r   openpyxl.descriptors.excelr	   !openpyxl.descriptors.serialisabler
   rB   r   openpyxl.worksheet.cell_ranger   r   objectr7   r   r   r   <module>r]      s   $ # # # # #              5 4 4 4 4 4 : : : : : :       8 8 8 8 8 8## ## ## ## ##L ## ## ##L= = = = = = = = = =r   