o
    ðäj  ã                   @   sr   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 G dd„ dƒZG dd	„ d	eƒZd
S )é    )Úchain)ÚSerialisable)ÚMinMaxÚTypedÚStringÚStrict)Ú	Worksheet)Úget_column_letterÚrange_to_tupleÚquote_sheetnamec                   @   s   e Zd Zdd„ ZdS )ÚDummyWorksheetc                 C   s
   || _ d S ©N)Útitle)Úselfr   © r   ú\/var/www/ticemtrilhas/avaliacao_env/lib/python3.10/site-packages/openpyxl/chart/reference.pyÚ__init__   s   
zDummyWorksheet.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r      s    r   c                   @   s¸   e Zd ZdZedded�Zedded�Zedded�Zedded�Z	e
dd�Z						dd	d
„Zdd„ Zdd„ ZeZdd„ Zdd„ Zedd„ ƒZedd„ ƒZdd„ Zedd„ ƒZdS )Ú	Referencez)
    Normalise cell range references
    é   i@B )ÚminÚmaxÚexpected_typei @  T)Ú
allow_noneNc           	      C   sb   |d urt |ƒ\}}|\}}}}t|ƒ}|| _|| _|| _|d u r#|}|| _|d u r,|}|| _d S r   )r
   r   Ú	worksheetÚmin_colÚmin_rowÚmax_colÚmax_row)	r   r   r   r   r   r    Úrange_stringÚ	sheetnameÚ
boundariesr   r   r   r   '   s   
zReference.__init__c                 C   s   t | ƒS r   ©Ústr©r   r   r   r   Ú__repr__?   s   zReference.__repr__c                 C   sD   d}| j | jkr| j| jkrd}| | jt| j ƒ| jt| jƒ| j¡S )Nz{0}!${1}${2}:${3}${4}z{0}!${1}${2})r   r   r   r    Úformatr"   r	   )r   Úfmtr   r   r   Ú__str__C   s   þzReference.__str__c                 C   s,   | j | jkrd| j | j S d| j | j  S )Nr   )r   r    r   r   r&   r   r   r   Ú__len__R   s   zReference.__len__c                 C   s   t | ƒt |ƒkS r   r$   )r   Úotherr   r   r   Ú__eq__X   s   zReference.__eq__c                 c   s6   � t | j| jd ƒD ]}t| j| j|| j|ƒV  q
dS )z.
        Return all rows in the range
        r   N)Úranger   r    r   r   r   r   )r   Úrowr   r   r   Úrows\   ó   €ÿzReference.rowsc                 c   s6   � t | j| jd ƒD ]}t| j|| j|| jƒV  q
dS )z1
        Return all columns in the range
        r   N)r.   r   r   r   r   r   r    )r   Úcolr   r   r   Úcolse   r1   zReference.colsc                 C   sD   d  t| jƒ| j¡}| j| jkr|  jd7  _|S |  jd7  _|S )z2
        Return and remove the first cell
        z{0}{1}r   )r(   r	   r   r   r    )r   Úcellr   r   r   Úpopn   s   ÿzReference.popc                 C   s   t | jjƒS r   )r   r   r   r&   r   r   r   r"   z   s   zReference.sheetname)NNNNNN)r   r   r   Ú__doc__r   Úintr   r    r   r   r   r!   r   r'   r*   r+   r-   Úpropertyr0   r3   r5   r"   r   r   r   r   r      s4    

ú

r   N)Ú	itertoolsr   Ú!openpyxl.descriptors.serialisabler   Úopenpyxl.descriptorsr   r   r   r   Úopenpyxl.worksheet.worksheetr   Úopenpyxl.utilsr	   r
   r   r   r   r   r   r   r   Ú<module>   s   