a
    b                     @   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   h/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/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 rF|}|| _|d u rX|}|| _d S r   )r
   r   	worksheetmin_colmin_rowmax_colmax_row)	r   r   r   r   r   r    range_string	sheetnameZ
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   s4   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\   s    zReference.rowsc                 c   s4   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   s    zReference.colsc                 C   sB   d t| j| j}| j| jkr0|  jd7  _n|  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,   propertyr/   r1   r3   r"   r   r   r   r   r      s2   
      


r   N)	itertoolsr   Z!openpyxl.descriptors.serialisabler   Zopenpyxl.descriptorsr   r   r   r   Zopenpyxl.worksheet.worksheetr   Zopenpyxl.utilsr	   r
   r   r   r   r   r   r   r   <module>   s   