o
    î`hZ°  ã                   @   s�   d dl mZ 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 )é    )Úabsolute_import)Ú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(   úN/var/www/html/env/lib/python3.10/site-packages/openpyxl/workbook/protection.pyÚ__init__8   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_password[   ó   
z(WorkbookProtection.set_workbook_passwordc                 C   ó   | j S )z7Return the workbook password value, regardless of hash.)r-   ©r'   r(   r(   r)   r   a   ó   z#WorkbookProtection.workbookPasswordc                 C   ó   |   |¡ dS )z6Set a workbook password directly, forcing a hash step.N)r1   ©r'   r/   r(   r(   r)   r   f   ó   c                 C   r,   )z)Set a revision password on this workbook.N)r   Ú_revisions_passwordr.   r(   r(   r)   Úset_revisions_passwordk   r2   z)WorkbookProtection.set_revisions_passwordc                 C   r3   )z8Return the revisions password value, regardless of hash.)r9   r4   r(   r(   r)   r   q   r5   z$WorkbookProtection.revisionsPasswordc                 C   r6   )z7Set a revisions password directly, forcing a hash step.N)r:   r7   r(   r(   r)   r   v   r8   c                    sH   t t| ƒ |¡}|jr|j| d¡dd� |jr"|j| d¡dd� |S )z0Don't hash passwords when deserialising from XMLr   T)r0   r   )Úsuperr   Ú	from_treer   r1   Úgetr   r:   )ÚclsÚnoder'   ©Ú	__class__r(   r)   r<   {   s   zWorkbookProtection.from_tree)NNNNNNNNNNNNNNN)r+   F)(Ú__name__Ú
__module__Ú__qualname__r-   r9   Ú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*   r1   Úpropertyr   Úsetterr:   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'   rR   rS   rT   rU   rV   rW   rX   r(   r(   r)   r*   •   s   	
zFileSharing.__init__)NNNNNNN)rB   rC   rD   rE   r	   rR   r   rS   r   rT   rU   rV   rW   r   rX   r*   r(   r(   r(   r)   rP   ‰   s"    






ùrP   N)Ú
__future__r   Ú!openpyxl.descriptors.serialisabler   Úopenpyxl.descriptorsr   r   r   r   r   r	   r
   r   Úopenpyxl.descriptors.excelr   r   r   r   r   Úopenpyxl.utils.protectionr   r   ÚDocumentSecurityrP   r(   r(   r(   r)   Ú<module>   s    (
m