a
    AdS                     @   s\   d dl Z d dlZd dlmZ d dlZejjZejjZdd ZdddZ	ddd	Z
d
d ZdS )    N)sharedc                    sb   t  }d t| d4t fdddD ]}|| q,W d    n1 sP0    Y  | S )N   rbc                      s
     S Nread blksizefr   6/var/www/html/stable-diffusion-webui/modules/hashes.py<lambda>       z"calculate_sha256.<locals>.<lambda>r   )hashlibsha256openiterupdate	hexdigest)filenamehash_sha256chunkr   r	   r   calculate_sha256   s    *r   Fc                 C   sd   |rt dnt d}tj| }||vr,d S || dd }|| dd}||ks\|d u r`d S |S )Nhashes-addnethashesr   mtimer   )cacheospathgetmtimeget)r   titleuse_addnet_hashr   ondisk_mtimeZcached_sha256cached_mtimer   r   r   sha256_from_cache   s    r%   c                 C   s   |rt dnt d}t| ||}|d ur,|S tjjr8d S td|  ddd |rt| d}t|}W d    q1 sx0    Y  nt| }t|  t	j
| |d||< t  |S )	Nr   r   zCalculating sha256 for z:  )endr   )r   r   )r   r%   r   cmd_opts
no_hashingprintr   addnet_hash_safetensorsr   r   r   r   
dump_cache)r   r!   r"   r   Zsha256_valuefiler   r   r   r   &   s"    (


r   c                    sj   t  }d d  d}t|d}|d } | t fdddD ]}|| qR| S )zikohya-ss hash for safetensors from https://github.com/kohya-ss/sd-scripts/blob/main/library/train_util.pyr   r      littlec                      s
     S r   r   r   br
   r   r   r   M   r   z)addnet_hash_safetensors.<locals>.<lambda>r   )	r   r   seekr   int
from_bytesr   r   r   )r1   r   headernoffsetr   r   r0   r   r+   B   s    


r+   )F)F)r   os.pathr   modulesr   Zmodules.cacher   r,   r   r%   r   r+   r   r   r   r   <module>   s   

