
    	h#                        S SK J r   S SKJr  S SKJrJrJrJr  S SKJ	r	  S SK
JrJrJrJrJrJr  S SKJr  S SKJr  S SKJr  S S	KJr   " S
 S\\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    )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                      ^  \ rS rSrSrSr\" 5       r\" 5       r	\" SS9r
\" S5      r\" 5       r\" S5      r SU 4S jjrS	 rS
 rS rSrU =r$ )	Dimension   z<Information about the display properties of a row or column.)hiddenoutlineLevel	collapsedT
allow_noner   style_idc                 P   > [         TU ]  XWS9  Xl        X l        X0l        X@l        g )N)sheetstyle_array)super__init__indexr   r   r   )	selfr"   r   r   r   	worksheetvisiblestyle	__class__s	           O/var/www/html/env/lib/python3.13/site-packages/openpyxl/worksheet/dimensions.pyr!   Dimension.__init__)   s(    y<
("    c              #   z   #    U R                    H'  n[        XS 5      nU(       d  M  U[        U5      4v   M)     g 7fN)
__fields__getattrr   )r#   keyvalues      r(   __iter__Dimension.__iter__2   s4     ??CDt,Eu;u--- #s   !;;c                     U R                  U R                  5      nU R                  nU R                  US'   UR                  " S0 UD6  [        U R                  5      Ul        U$ )Nr$    )__new__r'   __dict__parentr!   r   _style)r#   cpattribs      r(   __copy__Dimension.__copy__9   sO    \\$..)"kk{
f%		r*   c                 N    SU R                   R                   S[        U 5       S3$ )N<z Instance, Attributes=>)r'   __name__dictr#   s    r(   __repr__Dimension.__repr__B   s'    4>>**++A$t*QOOr*   )r   r   r"   r   )TN)r@   
__module____qualname____firstlineno____doc__r-   r
   r"   r   r   r   r   outline_levelr   r&   r!   r1   r;   rC   __static_attributes____classcell__r'   s   @r(   r   r      sc    FJ IEVFd+L.)MI*E <@#.P Pr*   r   c                      ^  \ rS rSrSr\R                  S-   r\" S5      r\" S5      r	\
" SS9r\" S5      r\" 5       r\" 5       r               SU 4S	 jjr\S
 5       r\S 5       rSrU =r$ )RowDimensionF   z2Information about the display properties of a row.)htcustomFormatcustomHeightsthickBotthickTopr"   r   Tr   rP   c           	      ~   > Ub  UnUb  UnX0l         Ub  U(       + nU	b  U	nXl        UU l        [        TU ]  X'UXUS9  g N)r&   )rP   rT   rU   r    r!   )r#   r$   r"   rP   rR   rS   rQ   r   r   rI   r   r%   heightrspansrT   rU   kwr'   s                     r(   r!   RowDimension.__init__R   s_    & =EB [F$(L  +4q 	 	Jr*   c                     U R                   $ )z+Always true if there is a style for the row)	has_stylerB   s    r(   rQ   RowDimension.customFormats   s     ~~r*   c                     U R                   SL$ )z,Always true if there is a height for the rowN)rP   rB   s    r(   rR   RowDimension.customHeightx   s     wwd""r*   )rP   rT   rU   )r   NNNNFr   NFNNNNNN)r@   rE   rF   rG   rH   r   r-   r   rY   rS   r   rP   rX   r   rT   rU   r!   propertyrQ   rR   rJ   rK   rL   s   @r(   rN   rN   F   s    <%% )A AJgAjA	$	B4[FvHvH ""# !JB   # #r*   rN   c                      ^  \ rS rSrSr\" 5       r\" 5       r\	" S5      r
\" 5       r\" SS9r\" SS9r\" 5       r\R$                  S-   rS\SSS	S
SS
S
S
SS
S
4U 4S jjr\S 5       rS r\S 5       rS rSrU =r$ )ColumnDimension~   z5Information about the display properties of a column.bestFitTr   )widthrf   customWidthr&   minmaxAFr   Nc           	         > X0l         Xl        Xl        Ub  U(       + nUb  UnX@l        Ub  UnXl        [
        TU ]  X%UXU	S9  g rW   )rg   ri   rj   rf   r   r    r!   )r#   r$   r"   rg   rf   r   r   rI   r   r&   ri   rj   rh   r%   	auto_sizer'   s                  r(   r!   ColumnDimension.__init__   s]     
 [F G$(L".7% 	 	Qr*   c                 ,    [        U R                  5      $ )z.Always true if there is a width for the column)boolrg   rB   s    r(   rh   ColumnDimension.customWidth   s     DJJr*   c                     [        U R                  U R                  /5      (       d"  [        U R                  5      =U l        U l        gg)z&
Set boundaries for column definition
N)allri   rj   r   r"   rB   s    r(   reindexColumnDimension.reindex   s8     DHHdhh'((":4::"FFDHtx )r*   c                 \    [        U R                  5       S[        U R                  5       3$ )z*Return the range of cells actually covered:)r   ri   rj   rB   s    r(   rangeColumnDimension.range   s*     $DHH-.a0A$((0K/LMMr*   c                 \    [        U 5      nUR                  5       SS1:w  a  [        S0 UD6$ g )Nri   rj   )col)rA   keysr   )r#   attrss     r(   to_treeColumnDimension.to_tree   s0    T
::<E5>)*E** *r*   )rf   r   rj   ri   rg   )r@   rE   rF   rG   rH   r   rg   r   rf   r   rm   r   r"   r
   ri   rj   r   r   r-   r	   r!   rb   rh   rt   rx   r~   rJ   rK   rL   s   @r(   rd   rd   ~   s    ?GEfGi IHE
T
"C
T
"CI%% )7 7J
 +# "Q<    
G N N
+ +r*   rd   c                   @   ^  \ rS rSrSrSU 4S jjrSS jrS rSrU =r	$ )	DimensionHolder   z
Allow columns to be grouped
c                 J   > Xl         S U l        X0l        [        TU ]  X#5        g r,   )r$   max_outlinedefault_factoryr    r!   )r#   r$   	referencer   r'   s       r(   r!   DimensionHolder.__init__   s#    ".4r*   c                    Uc  Un[        U R                  5       [        5      (       aO  X   nX5l        XEl        [        X5      SS nU H  nXp;   d  M
  X	 M     [        [        X45      u  Ul        Ul	        g[        U R                  5       [        5      (       a;  [        XS-   5       H(  nU R                  R                  U   nX5l        XEl        M*     gg)a,  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
N   )
isinstancer   rd   rI   r   r   mapr   ri   rj   rN   rx   r$   row_dimensions)	r#   startendrI   r   new_dimwork_sequencecolumn_letterels	            r(   groupDimensionHolder.group   s     ;Cd**,o>>kG$1!#N/;AB?M!. (+ "/ (++Ce\'R$GK,,.==E7+..77;(5%!' , >r*   c                 F   S n[        S5      n[        5       n[        U R                  5       US9 HD  nUR	                  5       nUc  M  UR                  UR                  5        UR                  U5        MF     U(       a  [        U5      U l	        [        U5      (       a  U$ g )Nc                 :    U R                  5         U R                  $ r,   )rt   ri   )r0   s    r(   sorter'DimensionHolder.to_tree.<locals>.sorter   s    MMO99r*   cols)r/   )r   setsortedvaluesr~   addr   appendrj   r   len)r#   r   r   outlinesr{   objs         r(   r~   DimensionHolder.to_tree   s    	 V_5$++-V4C++-CS--.		#	 5 "8}Dr77I r*   )r   r   r$   )r"   N)Nr   F)
r@   rE   rF   rG   rH   r!   r   r~   rJ   rK   rL   s   @r(   r   r      s    5(6 r*   r   c                       \ rS rSrSr\" SS9r\" SS9r\" 5       r	\
" SS9r\
" SS9r\
" SS9r\
" SS9r\" SS9r\" SS9r         SS jrSrg)	SheetFormatProperties   sheetFormatPrTr   Nc
                 p    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        g r,   )	baseColWidthdefaultColWidthdefaultRowHeightrR   
zeroHeightrU   thickBottomoutlineLevelRowoutlineLevelCol)
r#   r   r   r   rR   r   rU   r   r   r   s
             r(   r!   SheetFormatProperties.__init__  s8     ). 0($ &..r*   )	r   rR   r   r   r   r   r   rU   r   )	   N   NNNNNN)r@   rE   rF   rG   tagnamer
   r   r   r   r   r   rR   r   rU   r   r   r   r!   rJ   r4   r*   r(   r   r      s    Gd+Lt,Ow4(L&Jt$H$'K.O.O  !%"$" !!%!%/r*   r   c                   B    \ rS rSrSr\" 5       r SS jr\S 5       r	Sr
g)SheetDimensioni$  	dimensionNc                     Xl         g r,   ref)r#   r   s     r(   r!   SheetDimension.__init__*  s	     r*   c                 ,    [        U R                  5      $ r,   )r   r   rB   s    r(   
boundariesSheetDimension.boundaries0  s    ))r*   r   r,   )r@   rE   rF   rG   r   r   r   r!   rb   r   rJ   r4   r*   r(   r   r   $  s,    G
(C  * *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   rN   rd   r   r   r   r4   r*   r(   <module>r      s     '  6  ; 5 ; *(P (PV5#9 5#pB+i B+J:o :z!/L !/H*\ *r*   