
    fh#                     <   d dl m Z  d dlmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZ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e          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )    )copy)safe_string)get_column_letterget_column_intervalcolumn_index_from_stringrange_boundaries)DEFAULT_COLUMN_WIDTH)IntegerFloatBoolStrictStringAlias)Serialisable)StyleableObject)BoundDictionary)Elementc                        e Zd ZdZdZ e            Z e            Z ed          Z	 e
d          Z e            Z e
d          Z	 d fd	Zd	 Zd
 Zd Z xZS )	Dimensionz<Information about the display properties of a row or column.)hiddenoutlineLevel	collapsedT
allow_noner   style_idNc                     t                                          ||           || _        || _        || _        || _        d S )N)sheetstyle_array)super__init__indexr   r   r   )	selfr!   r   r   r   	worksheetvisiblestyle	__class__s	           T/var/www/histauto/venv/lib/python3.11/site-packages/openpyxl/worksheet/dimensions.pyr    zDimension.__init__)   sA    ye<<<
("    c              #   j   K   | j         D ](}t          | |d           }|r|t          |          fV  )d S N)
__fields__getattrr   )r"   keyvalues      r'   __iter__zDimension.__iter__2   sT      ? 	. 	.CD#t,,E .;u------	. 	.r(   c                     |                      | j                  }| j        }| j        |d<    |j        di | t          | j                  |_        |S )Nr#    )__new__r&   __dict__parentr    r   _style)r"   cpattribs      r'   __copy__zDimension.__copy__9   sV    \\$.))"k{f%%		r(   c                 B    d| j         j         dt          |            dS )N<z Instance, Attributes=>)r&   __name__dictr"   s    r'   __repr__zDimension.__repr__B   s&    O4>*OO$t**OOOOr(   )TN)r<   
__module____qualname____doc__r+   r
   r!   r   r   r   r   outline_levelr   r%   r    r/   r8   r?   __classcell__r&   s   @r'   r   r      s        FFJ GIIETVVF7d+++LE.))MIE*E <@# # # # # #. . .  P P P P P P Pr(   r   c                       e Zd ZdZej        dz   Z ed          Z ed          Z e	d          Z
 ed          Z e            Z e            Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d fd	Zed             Zed             Z xZS )RowDimensionz2Information about the display properties of a row.)htcustomFormatcustomHeightsthickBotthickTopr!   r   Tr   rH   r   NFc                     ||}||}|| _         || }|	|	}|| _        || _        t                                          ||||
||           d S N)r%   )rH   rL   rM   r   r    )r"   r#   r!   rH   rJ   rK   rI   r   r   rC   r   r$   heightrspansrL   rM   kwr&   s                     r'   r    zRowDimension.__init__R   s    & =EB [F$(L  +4iq 	 	J 	J 	J 	J 	Jr(   c                     | j         S )z+Always true if there is a style for the row)	has_styler>   s    r'   rI   zRowDimension.customFormats   s     ~r(   c                     | j         duS )z,Always true if there is a height for the rowN)rH   r>   s    r'   rJ   zRowDimension.customHeightx   s     wd""r(   )r   NNNNFr   NFNNNNNN)r<   r@   rA   rB   r   r+   r   rQ   rK   r   rH   rP   r   rL   rM   r    propertyrI   rJ   rD   rE   s   @r'   rG   rG   F   s       <<% )A AJgAjA	$			BU4[[FtvvHtvvH ""# !J J J J J JB   X # # X# # # # #r(   rG   c                        e Zd ZdZ e            Z e            Z ed          Z	 e
            Z ed          Z ed          Z e            Zej        dz   Zdedddd	dd	d	d	dd	d	f fd
	Zed             Zd Zed             Zd Z xZS )ColumnDimensionz5Information about the display properties of a column.bestFitTr   )widthrZ   customWidthr%   minmaxAFr   Nc                     || _         |
| _        || _        || }||}|| _        ||}|| _        t                                          ||||||	           d S rO   )r[   r]   r^   rZ   r   r   r    )r"   r#   r!   r[   rZ   r   r   rC   r   r%   r]   r^   r\   r$   	auto_sizer&   s                  r'   r    zColumnDimension.__init__   s     
 [F G$(L".7% 	 	Q 	Q 	Q 	Q 	Qr(   c                 *    t          | j                  S )z.Always true if there is a width for the column)boolr[   r>   s    r'   r\   zColumnDimension.customWidth   s     DJr(   c                     t          | j        | j        g          s"t          | j                  x| _        | _        dS dS )z6
        Set boundaries for column definition
        N)allr]   r^   r   r!   r>   s    r'   reindexzColumnDimension.reindex   sF     DHdh'(( 	G":4:"F"FFDHtxxx	G 	Gr(   c                 X    t          | j                   dt          | j                   S )z*Return the range of cells actually covered:)r   r]   r^   r>   s    r'   rangezColumnDimension.range   s-     $DH--MM0A$(0K0KMMMr(   c                 p    t          |           }|                                ddhk    rt          di |S d S )Nr]   r^   col)rk   )r=   keysr   )r"   attrss     r'   to_treezColumnDimension.to_tree   s@    T

::<<E5>))**E*** *)r(   )r<   r@   rA   rB   r   r[   r   rZ   r   ra   r   r!   r
   r]   r^   r   r   r+   r	   r    rW   r\   rf   ri   rn   rD   rE   s   @r'   rY   rY   ~   s=       ??EGGEdffGi  IFHHE
'T
"
"
"C
'T
"
"
"CI% )7 7J
 +# "Q Q Q Q Q Q<     X 
G G G N N XN
+ + + + + + +r(   rY   c                   2     e Zd ZdZd	 fd	Zd
dZd Z xZS )DimensionHolderz%
    Allow columns to be grouped
    r!   Nc                 v    || _         d | _        || _        t                                          ||           d S r*   )r#   max_outlinedefault_factoryr   r    )r"   r#   	referencers   r&   s       r'   r    zDimensionHolder.__init__   s:    ".O44444r(      Fc                    ||}t          |                                 t                    r`| |         }||_        ||_        t          ||          dd         }|D ]	}|| v r| |= 
t          t          ||f          \  |_        |_	        dS t          |                                 t                    r6t          ||dz             D ]$}| j        j        |         }||_        ||_        #dS dS )aT  allow grouping a range of consecutive rows or columns together

        :param start: first row or column to be grouped (mandatory)
        :param end: last row or column to be grouped (optional, default to start)
        :param outline_level: outline level
        :param hidden: should the group be hidden on workbook open or not
        Nru   )
isinstancers   rY   rC   r   r   mapr   r]   r^   rG   ri   r#   row_dimensions)	r"   startendrC   r   new_dimwork_sequencecolumn_letterels	            r'   groupzDimensionHolder.group   s    ;Cd**,,o>> 	(5kG$1G!#GN/s;;ABB?M!. , , D((]+'*+CeS\'R'R$GK,,..== 	(E37++ ( (.7;(5%!'		( 	(( (r(   c                 j   d }t          d          }t                      }t          |                                 |          D ]G}|                                }|/|                    |j                   |                    |           H|rt          |          | _	        t          |          r|S d S )Nc                 8    |                                   | j        S r*   )rf   r]   )r.   s    r'   sorterz'DimensionHolder.to_tree.<locals>.sorter   s    MMOOO9r(   cols)r-   )r   setsortedvaluesrn   addr   appendr^   rr   len)r"   r   r   outlinesrk   objs         r'   rn   zDimensionHolder.to_tree   s    	 	 	 V__55$++--V444 	 	C++--CS-...		# 	-"8}}Dr77 	I	 	r(   )r!   N)Nru   F)r<   r@   rA   rB   r    r   rn   rD   rE   s   @r'   rp   rp      sj         5 5 5 5 5 5( ( ( (6      r(   rp   c                       e Zd ZdZ ed          Z ed          Z e            Z e	d          Z
 e	d          Z e	d          Z e	d          Z ed          Z ed          Z	 	 	 	 	 	 	 	 	 ddZdS )	SheetFormatPropertiessheetFormatPrTr      N   c
                     || _         || _        || _        || _        || _        || _        || _        || _        |	| _        d S r*   )	baseColWidthdefaultColWidthdefaultRowHeightrJ   
zeroHeightrM   thickBottomoutlineLevelRowoutlineLevelCol)
r"   r   r   r   rJ   r   rM   r   r   r   s
             r'   r    zSheetFormatProperties.__init__  sP     ). 0($ &..r(   )	r   Nr   NNNNNN)r<   r@   rA   tagnamer
   r   r   r   r   r   rJ   r   rM   r   r   r   r    r1   r(   r'   r   r      s        G7d+++Let,,,Ouww44(((L&&&Jtt$$$H$$'''Kg...Og...O  !%"$" !!%!%/ / / / / /r(   r   c                   F    e Zd ZdZ e            Z	 ddZed             ZdS )SheetDimension	dimensionNc                     || _         d S r*   )ref)r"   r   s     r'   r    zSheetDimension.__init__*  s     r(   c                 *    t          | j                  S r*   )r   r   r>   s    r'   
boundarieszSheetDimension.boundaries0  s    )))r(   r*   )	r<   r@   rA   r   r   r   r    rW   r   r1   r(   r'   r   r   $  sX        G
&((C     * * X* * *r(   r   N)r   openpyxl.compatr   openpyxl.utilsr   r   r   r   openpyxl.utils.unitsr	   openpyxl.descriptorsr
   r   r   r   r   r   !openpyxl.descriptors.serialisabler   openpyxl.styles.styleabler   openpyxl.utils.bound_dictionaryr   openpyxl.xml.functionsr   r   rG   rY   rp   r   r   r1   r(   r'   <module>r      s2         ' ' ' ' ' '            6 5 5 5 5 5                ; : : : : : 5 5 5 5 5 5 ; ; ; ; ; ; * * * * * *(P (P (P (P (P (P (P (PV5# 5# 5# 5# 5#9 5# 5# 5#pB+ B+ B+ B+ B+i B+ B+ B+J: : : : :o : : :z!/ !/ !/ !/ !/L !/ !/ !/H* * * * *\ * * * * *r(   