o
    ðäjx  ã                   @   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'   ú`/var/www/ticemtrilhas/avaliacao_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