ó
    ‰*£hM  ã                   ób   • S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	  SSK
Jr  S r " S	 S
5      rg)zRead worksheets on-demand
é   )Ú	Worksheeté    )ÚReadOnlyCellÚ
EMPTY_CELL)Úget_column_letter)ÚWorkSheetParser)ÚDefinedNameDictc                 ó:   • [        U / 5      nUR                  5       $ ©N)r   Úparse_dimensions)ÚsourceÚparsers     ÚZ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/openpyxl/worksheet/_read_only.pyÚread_dimensionr      s   € Ü˜V RÓ(€FØ×"Ñ"Ó$Ð$ó    c                   ó6  • \ rS rSrSrSrS=rr\R                  r	\R                  r
\R                  r\R                  r\R                  r\R                  rS rS rS rSS jrSS jrS	 rSS
 jrS rS r\S 5       r\S 5       r\S 5       r\S 5       rSrg)ÚReadOnlyWorksheeté   r   Nc                 óŽ   • Xl         X l        SU l        S U l        X0l        X@l        U R                  5         [        5       U l        g )NÚvisible)	ÚparentÚtitleÚsheet_stateÚ_current_rowÚ_worksheet_pathÚ_shared_stringsÚ	_get_sizer	   Údefined_names)ÚselfÚparent_workbookr   Úworksheet_pathÚshared_stringss        r   Ú__init__ÚReadOnlyWorksheet.__init__#   s=   € Ø%ŒØŒ
Ø$ˆÔØ ˆÔØ-ÔØ-ÔØ�‰ÔÜ,Ó.ˆÕr   c                 óº   • U R                  5       n[        U/ 5      nUR                  5       nUR                  5         Ub  Uu  U l        U l        U l        U l        g g r   )Ú_get_sourcer   r   ÚcloseÚ_min_columnÚ_min_rowÚ_max_columnÚ_max_row)r   Úsrcr   Ú
dimensionss       r   r   ÚReadOnlyWorksheet._get_size.   sV   € Ø×ÑÓ ˆÜ   bÓ)ˆØ×,Ñ,Ó.ˆ
Ø�	‰	ŒØÑ!ØOYÑLˆDÔ˜dœm¨TÔ-=¸t½}ð "r   c                 ó`   • U R                   R                  R                  U R                  5      $ )z0Parse xml source on demand, must close after use)r   Ú_archiveÚopenr   ©r   s    r   r&   ÚReadOnlyWorksheet._get_source7   s#   € à�{‰{×#Ñ#×(Ñ(¨×)=Ñ)=Ó>Ð>r   c           
   #   óÒ  #   • [         nU(       a  SnU=(       d    U R                  nU=(       d    U R                  n/ nUb  U4US-   U-
  -  nUnSn	U R                  5        n
[	        U
U R
                  U R                  R                  U R                  R                  U R                  R                  U R                  R                  S9nUR                  5        HL  u  pœUb  X”:”  a    OA[        X‰5       H  nUS-  nUv •  M     X‰::  d  M1  U R                  XÁX55      nUS-  nUv •  MN     SSS5        Ub   XI:  a  [        X„S-   5       H  nUv •  M	     ggg! , (       d  f       N2= f7f)z\
The source worksheet file may have columns or rows missing.
Missing cells will be created.
Nr   )Ú	data_onlyÚepochÚdate_formatsÚtimedelta_formats)r   Ú
max_columnÚmax_rowr&   r   r   r   r5   r6   Ú_date_formatsÚ_timedelta_formatsÚparseÚrangeÚ_get_row)r   Úmin_colÚmin_rowÚmax_colr:   Úvalues_onlyÚfillerÚ	empty_rowÚcounterÚidxr,   r   ÚrowÚ_s                 r   Ú_cells_by_rowÚReadOnlyWorksheet._cells_by_row<   sP  é € ô
 ˆÞØˆFà×,˜TŸ_™_ˆØ×)˜TŸ\™\ˆØˆ	ØÑØ˜	 W¨q¡[°7Ñ%:Ñ;ˆIàˆØˆØ×ÑÔ 3Ü$ SØ%)×%9Ñ%9Ø/3¯{©{×/DÑ/DØ+/¯;©;×+<Ñ+<Ø26·+±+×2KÑ2KØ7;·{±{×7UÑ7UñWˆFð #ŸL™LžN‘�ØÑ&¨3«=Ùô ˜wÖ,�AØ˜q‘L�GØ#”Oñ -ð
 •>ØŸ-™-¨°gÓK�CØ˜q‘L�GØ”Iñ +÷  ð. Ñ 7£=Ü˜7¨A¡IÖ.�Ø”ò /ð $1Ð÷/  Õüs%   ‚AE'Á!B&EÄEÄ*,E'Å
E$Å E'c                 ó  • U(       d  U(       d  gU=(       d    US   S   nUS-   U-
  n[         /U-  nU(       a  S/U-  nU H<  nUS   nX(s=::  a  U::  d  M  O  M  X‚-
  n	US   Xi'   U(       a  M.  [        U 40 UD6Xi'   M>     [        U5      $ )zD
Make sure a row contains always the same number of cells or values
© éÿÿÿÿÚcolumnr   NÚvalue)r   r   Útuple)
r   rH   r@   rB   rC   Ú	row_widthÚnew_rowÚcellrF   rG   s
             r   r?   ÚReadOnlyWorksheet._get_rowi   sž   € ö ž7Øà×/˜c "™g hÑ/ˆØ˜a‘K 'Ñ)ˆ	ä�, Ñ*ˆÞØ�f˜yÑ(ˆGãˆDØ˜8‘nˆGØÕ, W×,Ñ,ØÑ'�Ø# G™}�‘ß"�{Ü#/°Ñ#=¸Ñ#=�G“Lñ ô �W‹~Ðr   c                 ó\   • U R                  X!X!5       H  nU(       d  M  US   s  $    [        $ )z4Cells are returned by a generator which can be emptyr   )rJ   r   )r   rH   rO   s      r   Ú	_get_cellÚReadOnlyWorksheet._get_cell‚   s0   € à×%Ñ% f°6Ö?ˆCßˆsØ˜1‘v’ñ @ô Ðr   c                 ó  • [        U R                  U R                  /5      (       d#  U(       a  U R                  5         O[	        S5      e[        U R                  5       U R                   S[        U R                  5       U R                   3$ )Nz9Worksheet is unsized, use calculate_dimension(force=True)Ú:)Úallr9   r:   Ú_calculate_dimensionÚ
ValueErrorr   Ú
min_columnrA   )r   Úforces     r   Úcalculate_dimensionÚ%ReadOnlyWorksheet.calculate_dimensionŠ   sr   € Ü�D—O‘O T§\¡\Ð2×3Ñ3ÞØ×)Ñ)Õ+ä Ð!\Ó]Ð]Ü# D§O¡OÓ4Ð5°d·l±l°^À1ÔEVÐW[×WfÑWfÓEgÐDhÐim×iuÑiuÐhvÐwÐwr   c                 ó¢   • SnU R                    H&  nU(       d  M  US   n[        XR                  5      nM(     WR                  U l        Xl        g)zh
Loop through all the cells to get the size of a worksheet.
Do this only if it is explicitly requested.
r   rN   N)ÚrowsÚmaxrO   rH   r+   r*   )r   rB   ÚrrT   s       r   r\   Ú&ReadOnlyWorksheet._calculate_dimension“   sG   € ð ˆØ—”ˆAÞÙØ�R‘5ˆDÜ˜'§;¡;Ó/ŠGñ	 ð Ÿ™ˆŒØ"Õr   c                 ó    • S=U l         U l        g)z¨
Remove worksheet dimensions if these are incorrect in the worksheet source.
NB. This probably indicates a bug in the library or application that created
the workbook.
N)r+   r*   r2   s    r   Úreset_dimensionsÚ"ReadOnlyWorksheet.reset_dimensions¤   s   € ð ,0Ð/ˆŒ˜Õ(r   c                 ó   • U R                   $ r   )r)   r2   s    r   rA   ÚReadOnlyWorksheet.min_row­   ó   € à�}‰}Ðr   c                 ó   • U R                   $ r   )r+   r2   s    r   r:   ÚReadOnlyWorksheet.max_row²   rl   r   c                 ó   • U R                   $ r   )r(   r2   s    r   r^   ÚReadOnlyWorksheet.min_column·   ó   € à×ÑÐr   c                 ó   • U R                   $ r   )r*   r2   s    r   r9   ÚReadOnlyWorksheet.max_column¼   rq   r   )r   r*   r+   r(   r)   r   r   r   r   r   r   )F)r   NF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r(   r)   r*   r+   r   rT   Ú	iter_rowsÚvaluesrc   Ú__getitem__Ú__iter__r#   r   r&   rJ   r?   rW   r`   r\   rh   ÚpropertyrA   r:   r^   r9   Ú__static_attributes__rM   r   r   r   r      sÖ   † à€KØ€HØ!Ð!€K�(ð �>‰>€DØ×#Ñ#€IØ×Ñ€FØ�>‰>€DØ×'Ñ'€KØ×!Ñ!€Hò/òZò?ô
* ôZò2ôxò#ò"0ð ñó ðð ñó ðð ñ ó ð ð ñ ó ó r   r   N)Ú__doc__Ú	worksheetr   Úopenpyxl.cell.read_onlyr   r   Úopenpyxl.utilsr   Ú_readerr   Úopenpyxl.workbook.defined_namer	   r   r   rM   r   r   Ú<module>r„      s,   ðñõ !ß <Ý ,å $Ý :ò%÷
k ò k r   