o
    gx                     @   s   d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZmZmZmZmZ d dlmZ G dd deZeZG dd deZd	S )
    )Serialisable)AliasTypedStringFloatIntegerBoolNoneSetSet)ExtensionList	HexBinaryGuidRelationBase64Binary)hash_passwordc                       sJ  e Zd Zd\ZZdZedZeddZ	edZ
eddZeddZedZeddZedZeddZed	ZeddZeddZeddZeddZeddZeddZeddZeddZd
Z															dddZdddZe dd Z!e!j"dd Z!dddZ#e dd Z$e$j"dd Z$e% fddZ&  Z'S )WorkbookProtection)NN
workbookPrworkbookPasswordT
allow_nonerevisionsPasswordlockStructurelockWindowslockRevisionr   workbookPasswordCharacterSetr   revisionsPasswordCharacterSetr   r   r   revisionsAlgorithmNamerevisionsHashValuerevisionsSaltValuerevisionsSpinCountworkbookAlgorithmNameworkbookHashValueworkbookSaltValueworkbookSpinCountNc                 C   sn   |d ur|| _ || _|d ur|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _|| _|| _|| _d S Nr   )selfr   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$    r'   V/var/www/html/api-tag/env/lib/python3.10/site-packages/openpyxl/workbook/protection.py__init__7   s"   
zWorkbookProtection.__init__ Fc                 C      |st |}|| _dS )z Set a password on this workbook.N)r   _workbook_passwordr&   valuealready_hashedr'   r'   r(   set_workbook_passwordZ      
z(WorkbookProtection.set_workbook_passwordc                 C      | j S )z7Return the workbook password value, regardless of hash.)r,   r&   r'   r'   r(   r   `      z#WorkbookProtection.workbookPasswordc                 C      |  | dS )z6Set a workbook password directly, forcing a hash step.N)r0   r&   r.   r'   r'   r(   r   e      c                 C   r+   )z)Set a revision password on this workbook.N)r   _revisions_passwordr-   r'   r'   r(   set_revisions_passwordj   r1   z)WorkbookProtection.set_revisions_passwordc                 C   r2   )z8Return the revisions password value, regardless of hash.)r8   r3   r'   r'   r(   r   p   r4   z$WorkbookProtection.revisionsPasswordc                 C   r5   )z7Set a revisions password directly, forcing a hash step.N)r9   r6   r'   r'   r(   r   u   r7   c                    sD   t  |}|jr|j|ddd |jr |j|ddd |S )z0Don't hash passwords when deserialising from XMLr   T)r/   r   )super	from_treer   r0   getr   r9   )clsnoder&   	__class__r'   r(   r;   z   s   zWorkbookProtection.from_tree)NNNNNNNNNNNNNNN)r*   F)(__name__
__module____qualname__r,   r8   tagnamer   workbook_passwordr   r   revision_passwordr   r   r   lock_structurer   lock_windowsr   lock_revisionr   r   r   r   r   r    r!   r"   r#   r$   	__attrs__r)   r0   propertyr   setterr9   r   classmethodr;   __classcell__r'   r'   r?   r(   r      sd    














#




r   c                   @   sn   e Zd ZdZeddZeddZeddZ	eddZ
eddZeddZeddZ							dddZdS )FileSharingfileSharingTr   Nc                 C   s.   || _ || _|| _|| _|| _|| _|| _d S r%   )readOnlyRecommendeduserNamereservationPasswordalgorithmName	hashValue	saltValue	spinCount)r&   rQ   rR   rS   rT   rU   rV   rW   r'   r'   r(   r)      s   	
zFileSharing.__init__)NNNNNNN)rA   rB   rC   rD   r   rQ   r   rR   r   rS   rT   r   rU   rV   r   rW   r)   r'   r'   r'   r(   rO      s"    






rO   N)!openpyxl.descriptors.serialisabler   openpyxl.descriptorsr   r   r   r   r   r   r	   r
   openpyxl.descriptors.excelr   r   r   r   r   openpyxl.utils.protectionr   r   DocumentSecurityrO   r'   r'   r'   r(   <module>   s   (
m