o
    g	                     @   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)selfsource_worksheettarget_worksheet r   S/var/www/html/api-tag/env/lib/python3.10/site-packages/openpyxl/worksheet/copier.py__init__   s   zWorksheetCopy.__init__c                 C   sP   t | jtst | jtstd| j| ju rtd| jj| jjkr&t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   sheet_formatr   sheet_propertiesmerged_cellspage_margins
page_setupprint_optionsr   r   r   r   copy_worksheet#   s   zWorksheetCopy.copy_worksheetc                 C   st   | j j D ]1\\}}}| jj||d}|j|_|j|_|jr%t|j	|_	|j
r.t|j
|_|jr7t|j|_qd S )N)columnrow)r   _cellsitemsr   cell_value	data_type	has_styler   _style	hyperlink
_hyperlinkcomment)r
   r   colsource_celltarget_cellr   r   r   r   /   s   zWorksheetCopy._copy_cellsc                 C   sP   dD ]#}t | j|}t | j|}| D ]\}}t|||< | j|| _qqd S )N)row_dimensionscolumn_dimensions)getattrr   r   r!   r   	worksheet)r
   attrsrcr   key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   r0   r   r   r   r   r   r   <module>   s   