o
    ϩZhx                     @   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)NNZ
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&   S/var/www/html/lang_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)r/   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   r0   z)WorkbookProtection.set_revisions_passwordc                 C   r1   )z8Return the revisions password value, regardless of hash.)r7   r2   r&   r&   r'   r   p   r3   z$WorkbookProtection.revisionsPasswordc                 C   r4   )z7Set a revisions password directly, forcing a hash step.N)r8   r5   r&   r&   r'   r   u   r6   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   r/   getr   r8   )clsnoder%   	__class__r&   r'   r:   z   s   zWorkbookProtection.from_tree)NNNNNNNNNNNNNNN)r)   F)(__name__
__module____qualname__r+   r7   tagnamer   Zworkbook_passwordr   r   Zrevision_passwordr   r   r   Zlock_structurer   Zlock_windowsr   Zlock_revisionr   r   r   r   r   r   r    r!   r"   r#   	__attrs__r(   r/   propertyr   setterr8   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 )FileSharingZfileSharingTr   Nc                 C   s.   || _ || _|| _|| _|| _|| _|| _d S r$   )readOnlyRecommendeduserNamereservationPasswordalgorithmName	hashValue	saltValue	spinCount)r%   rJ   rK   rL   rM   rN   rO   rP   r&   r&   r'   r(      s   	
zFileSharing.__init__)NNNNNNN)r@   rA   rB   rC   r   rJ   r   rK   r   rL   rM   r   rN   rO   r   rP   r(   r&   r&   r&   r'   rI      s"    






rI   N)Z!openpyxl.descriptors.serialisabler   Zopenpyxl.descriptorsr   r   r   r   r   r   r	   r
   Zopenpyxl.descriptors.excelr   r   r   r   r   Zopenpyxl.utils.protectionr   r   ZDocumentSecurityrI   r&   r&   r&   r'   <module>   s   (
m