î
æ^Q\°  ã               @   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 Gd d „  d e ƒ Z e Z Gd d	 „  d	 e ƒ Z d
 S)é    )Úabsolute_import)ÚSerialisable)ÚAliasÚTypedÚStringÚFloatÚIntegerÚBoolÚNoneSetÚSet)ÚExtensionListÚ	HexBinaryÚGuidÚRelationÚBase64Binary)Úhash_passwordc                   sê  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 d d d d d d d d d d d d d d „ Z d d d d „ Z e  d d „  ƒ Z! e! j" d d „  ƒ Z! d d d d „ Z# e  d d  „  ƒ Z$ e$ j" d! d  „  ƒ Z$ e% ‡  f d" d# †  ƒ Z& ‡  S)&ÚWorkbookProtectionNZ
workbookPrÚworkbookPasswordÚ
allow_noneTÚrevisionsPasswordÚlockStructureÚlockWindowsÚlockRevisionÚworkbookPasswordCharacterSetÚrevisionsPasswordCharacterSetÚrevisionsAlgorithmNameÚrevisionsHashValueÚrevisionsSaltValueÚrevisionsSpinCountÚworkbookAlgorithmNameÚworkbookHashValueÚworkbookSaltValueÚworkbookSpinCountc             C   s©   | d  k	 r | |  _  n  | |  _ | d  k	 r9 | |  _ n  | |  _ | |  _ | |  _ | |  _ | |  _ |	 |  _ |
 |  _	 | |  _
 | |  _ | |  _ | |  _ | |  _ d  S)N)r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   )Úselfr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   © r$   úQ/var/www/dbchiro/venv/lib/python3.4/site-packages/openpyxl/workbook/protection.pyÚ__init__8   s"    												zWorkbookProtection.__init__Ú Fc             C   s"   | s t  | ƒ } n  | |  _ d S)z Set a password on this workbook.N)r   Ú_workbook_password)r#   ÚvalueÚalready_hashedr$   r$   r%   Úset_workbook_password[   s    z(WorkbookProtection.set_workbook_passwordc             C   s   |  j  S)z7Return the workbook password value, regardless of hash.)r(   )r#   r$   r$   r%   r   a   s    z#WorkbookProtection.workbookPasswordc             C   s   |  j  | ƒ d S)z6Set a workbook password directly, forcing a hash step.N)r+   )r#   r)   r$   r$   r%   r   f   s    c             C   s"   | s t  | ƒ } n  | |  _ d S)z)Set a revision password on this workbook.N)r   Ú_revisions_password)r#   r)   r*   r$   r$   r%   Úset_revisions_passwordk   s    z)WorkbookProtection.set_revisions_passwordc             C   s   |  j  S)z8Return the revisions password value, regardless of hash.)r,   )r#   r$   r$   r%   r   q   s    z$WorkbookProtection.revisionsPasswordc             C   s   |  j  | ƒ d S)z7Set a revisions password directly, forcing a hash step.N)r-   )r#   r)   r$   r$   r%   r   v   s    c                sl   t  t |  ƒ j | ƒ } | j r@ | j | j d ƒ d d ƒn  | j rh | j | j d ƒ d d ƒn  | S)z0Don't hash passwords when deserialising from XMLr   r*   Tr   )Úsuperr   Ú	from_treer   r+   Úgetr   r-   )ÚclsÚnoder#   )Ú	__class__r$   r%   r/   {   s    		zWorkbookProtection.from_tree)NN)zworkbookPasswordzworkbookPasswordCharacterSetzrevisionsPasswordzrevisionsPasswordCharacterSetzlockStructurezlockWindowszlockRevisionzrevisionsAlgorithmNamezrevisionsHashValuezrevisionsSaltValuezrevisionsSpinCountzworkbookAlgorithmNamezworkbookHashValuezworkbookSaltValuezworkbookSpinCount)'Ú__name__Ú
__module__Ú__qualname__r(   r,   Ú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"   Z	__attrs__r&   r+   Úpropertyr   Úsetterr-   r   Úclassmethodr/   r$   r$   )r3   r%   r      s^       r   c            	   @   s    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 d d d d d d „ Z d S)ÚFileSharingZfileSharingr   TNc             C   sC   | |  _  | |  _ | |  _ | |  _ | |  _ | |  _ | |  _ d  S)N)ÚreadOnlyRecommendedÚuserNameÚreservationPasswordÚalgorithmNameÚ	hashValueÚ	saltValueÚ	spinCount)r#   r<   r=   r>   r?   r@   rA   rB   r$   r$   r%   r&   •   s    							zFileSharing.__init__)r4   r5   r6   r7   r	   r<   r   r=   r   r>   r?   r@   rA   r   rB   r&   r$   r$   r$   r%   r;   ‰   s   r;   N)Ú
__future__r   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DocumentSecurityr;   r$   r$   r$   r%   Ú<module>   s   :
(m