o
    VÌh!  ã                   @  sr   d dl mZ d dlZd dlZd dlmZ d dlmZ d dlmZ er(d dl	m
Z
 G dd„ deƒZG d	d
„ d
ƒZdS )é    )ÚannotationsN)Úsuppress)ÚTYPE_CHECKING)Ú
NamedTuple)ÚPathc                   @  s&   e Zd ZU ded< ded< ded< dS )Ú	Hexdigestú
str | NoneÚmd5Úsha256Ú
blake2_256N)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© r   r   úr/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/poetry/publishing/hash_manager.pyr      s   
 r   c                   @  sR   e Zd Zddd„Zddd„Zdd
d„Zddd„Zddd„Zddd„Zddd„Z	dS )ÚHashManagerÚreturnÚNonec                 C  s†   t  ¡ | _d | _ttƒ t  ¡ | _W d   ƒ n1 sw   Y  d | _tttƒ t j	dd| _W d   ƒ d S 1 s<w   Y  d S )Né    )Údigest_size)
Úhashlibr
   Ú_sha2_hasherÚ_md5_hasherr   Ú
ValueErrorr	   Ú_blake_hasherÚ	TypeErrorÚblake2b©Úselfr   r   r   Ú__init__   s   

þ"þzHashManager.__init__ÚcontentÚbytesc                 C  ó   | j d ur| j  |¡ d S d S ©N)r   Úupdate©r   r!   r   r   r   Ú_md5_update#   ó   
ÿzHashManager._md5_updater   c                 C  ó   | j d ur
| j  ¡ S d S r$   )r   Ú	hexdigestr   r   r   r   Ú_md5_hexdigest'   ó   

zHashManager._md5_hexdigestc                 C  r#   r$   )r   r%   r&   r   r   r   Ú_blake_update,   r(   zHashManager._blake_updatec                 C  r)   r$   )r   r*   r   r   r   r   Ú_blake_hexdigest0   r,   zHashManager._blake_hexdigestÚfiler   c                   sh   |  d¡%‰ t‡ fdd„dƒD ]}|  |¡ | j |¡ |  |¡ qW d   ƒ d S 1 s-w   Y  d S )NÚrbc                     s   ˆ   tj¡S r$   )ÚreadÚioÚDEFAULT_BUFFER_SIZEr   ©Úfpr   r   Ú<lambda>7   s    z"HashManager.hash.<locals>.<lambda>ó    )ÚopenÚiterr'   r   r%   r-   )r   r/   r!   r   r4   r   Úhash5   s   
ý"ÿzHashManager.hashr   c                 C  s   t |  ¡ | j ¡ |  ¡ ƒS r$   )r   r+   r   r*   r.   r   r   r   r   r*   <   s
   ýzHashManager.hexdigestN)r   r   )r!   r"   r   r   )r   r   )r/   r   r   r   )r   r   )
r   r   r   r    r'   r+   r-   r.   r:   r*   r   r   r   r   r      s    





r   )Ú
__future__r   r   r2   Ú
contextlibr   Útypingr   r   Úpathlibr   r   r   r   r   r   r   Ú<module>   s    