U
    .R”i	  ã                   @   s*   d dl m Z  ddlmZ G dd„ dƒZdS )é    )Úcopyé   )Ú	Worksheetc                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚWorksheetCopyzš
    Copy the values, styles, dimensions, merged cells, margins, and
    print/page setup from one worksheet to another within the same
    workbook.
    c                 C   s   || _ || _|  ¡  d S ©N)ÚsourceÚtargetÚ_verify_resources)ÚselfZsource_worksheetZtarget_worksheet© r   ú=/tmp/pip-unpacked-wheel-r0v169r1/openpyxl/worksheet/copier.pyÚ__init__   s    zWorksheetCopy.__init__c                 C   sP   t | jtƒs t | jtƒs tdƒ‚| j| jkr4tdƒ‚| jj| jjkrLtdƒ‚d S )NzCan only copy worksheetsz!Cannot copy a worksheet to itselfz7Cannot copy between worksheets from different workbooks)Ú
isinstancer   r   r   Ú	TypeErrorÚ
ValueErrorÚparent©r
   r   r   r   r	      s    
ÿzWorksheetCopy._verify_resourcesc                 C   st   |   ¡  |  ¡  t| jjƒ| j_t| jjƒ| j_t| jjƒ| j_t| jjƒ| j_t| jj	ƒ| j_	t| jj
ƒ| j_
d S r   )Ú_copy_cellsÚ_copy_dimensionsr   r   Zsheet_formatr   Zsheet_propertiesZmerged_cellsZpage_marginsZ
page_setupZprint_optionsr   r   r   r   Úcopy_worksheet#   s    zWorksheetCopy.copy_worksheetc                 C   st   | j j ¡ D ]b\\}}}| jj||d�}|j|_|j|_|jrJt|j	ƒ|_	|j
r\t|j
ƒ|_|jrt|jƒ|_qd S )N)ÚcolumnÚrow)r   Z_cellsÚitemsr   ÚcellÚ_valueZ	data_typeZ	has_styler   Ú_styleZ	hyperlinkZ
_hyperlinkÚcomment)r
   r   ÚcolZsource_cellZtarget_cellr   r   r   r   /   s    zWorksheetCopy._copy_cellsc                 C   sP   dD ]F}t | j|ƒ}t | j|ƒ}| ¡ D ] \}}t|ƒ||< | j|| _q(qd S )N)Zrow_dimensionsZcolumn_dimensions)Úgetattrr   r   r   r   Ú	worksheet)r
   ÚattrÚsrcr   ÚkeyZdimr   r   r   r   @   s    zWorksheetCopy._copy_dimensionsN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   r   r   r   r   r   r   r   r   	   s   r   N)r   r   r   r   r   r   r   r   Ú<module>   s   