
    fhx                         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e          ZeZ G d de          Zd	S )
    )Serialisable)AliasTypedStringFloatIntegerBoolNoneSetSet)ExtensionList	HexBinaryGuidRelationBase64Binary)hash_passwordc                       e Zd Zd\  ZZdZ ed          Z ed          Z	 ed          Z
 ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed	          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Zd
Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZe d             Z!e!j"        d             Z!ddZ#e d             Z$e$j"        d             Z$e% fd            Z& x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                     ||| _         || _        ||| _        || _        || _        || _        || _        || _        |	| _        |
| _	        || _
        || _        || _        || _        || _        d S Nr   )selfr   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   s                   S/var/www/histauto/venv/lib/python3.11/site-packages/openpyxl/workbook/protection.py__init__zWorkbookProtection.__init__7   s    " '$4D!,H)(%6D"-J**&(&<#"4"4"4%:"!2!2!2     Fc                 6    |st          |          }|| _        dS )z Set a password on this workbook.N)r   _workbook_passwordr)   valuealready_hasheds      r*   set_workbook_passwordz(WorkbookProtection.set_workbook_passwordZ   s%     	)!%((E"'r,   c                     | j         S )z7Return the workbook password value, regardless of hash.)r/   r)   s    r*   r   z#WorkbookProtection.workbookPassword`   s     &&r,   c                 0    |                      |           dS )z6Set a workbook password directly, forcing a hash step.N)r3   r)   r1   s     r*   r   z#WorkbookProtection.workbookPassworde   s     	""5)))))r,   c                 6    |st          |          }|| _        dS )z)Set a revision password on this workbook.N)r   _revisions_passwordr0   s      r*   set_revisions_passwordz)WorkbookProtection.set_revisions_passwordj   s%     	)!%((E#(   r,   c                     | j         S )z8Return the revisions password value, regardless of hash.)r9   r5   s    r*   r   z$WorkbookProtection.revisionsPasswordp   s     ''r,   c                 0    |                      |           dS )z7Set a revisions password directly, forcing a hash step.N)r:   r7   s     r*   r   z$WorkbookProtection.revisionsPasswordu   s     	##E*****r,   c                    t                                          |          }|j        r*|                    |                    d          d           |j        r*|                    |                    d          d           |S )z0Don't hash passwords when deserialising from XMLr   T)r2   r   )super	from_treer   r3   getr   r:   )clsnoder)   	__class__s      r*   r?   zWorkbookProtection.from_treez   s     ww  &&  	Z&&txx0B'C'CTX&YYY! 	\''1D(E(EVZ'[[[r,   )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+   r3   propertyr   setterr:   r   classmethodr?   __classcell__)rC   s   @r*   r   r      s       .8++G011#)6T#:#:#: 122$*Fd$;$;$;!DD)))MU?++N$$'''K5''L44(((LE.))M#Vt444%666%666 D111"Fd333$555$5554000;I #'.2#'/3#!"(,$($($('+#'#'#'!3 !3 !3 !3F( ( ( ( ' ' X' * * *) ) ) ) ( ( X( + + +     [    r,   r   c                       e Zd ZdZ ed          Z ed          Z ed          Z	 ed          Z
 ed          Z ed          Z ed          Z	 	 	 	 	 	 	 ddZdS )FileSharingfileSharingTr   Nc                 h    || _         || _        || _        || _        || _        || _        || _        d S r(   )readOnlyRecommendeduserNamereservationPasswordalgorithmName	hashValue	saltValue	spinCount)r)   rV   rW   rX   rY   rZ   r[   r\   s           r*   r+   zFileSharing.__init__   s<     $7  #6 *"""r,   )NNNNNNN)rD   rE   rF   rG   r	   rV   r   rW   r   rX   rY   r   rZ   r[   r   r\   r+    r,   r*   rS   rS      s        G$$///v&&&H#)t444Fd+++M---I---I4(((I &*%)## # # # # #r,   rS   N)!openpyxl.descriptors.serialisabler   openpyxl.descriptorsr   r   r   r   r   r	   r
   r   openpyxl.descriptors.excelr   r   r   r   r   openpyxl.utils.protectionr   r   DocumentSecurityrS   r]   r,   r*   <module>rc      sF   ; : : : : :	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	              4 3 3 3 3 3j j j j j j j jZ & # # # # #, # # # # #r,   