
    LMh                         d dl Z d dlZd dlmZ d dlZdZdZ ej        e          Z	dej
        dee         fdZdeddfd	Zdefd
ZdS )    N)Optionalzx-goog-hashi    responsereturnc                 P   t           | j        v r| j        t                    }|                    d          D ]o}	 |                                                    dd          \  }}|dk    r|c S 9# t          $ r* t
                              dt            d|            Y  d S w xY wd S )N,=   md5zInvalid z	 header: )GCS_HASH_HEADERheaderssplitstrip
ValueErrorloggerwarning)r   header_valuechecksumnamevalues        S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/kagglehub/integrity.pyget_md5_checksum_from_responser      s     (***'8$**3// 	 	H&nn..44S!<<e5== LLL !   R/RRLRRSSSttt 4s   2A///B#"B#out_filec                     | d S t          |d          5 }|                    t                    }|r1|                     |           |                    t                    }|1d d d            d S # 1 swxY w Y   d S )Nrb)openreadCOMPUTE_HASH_CHUNK_SIZEupdate)hash_objectr   fchunks       r   update_hash_from_filer"      s    	h		 4.// 	4u%%%FF233E  	44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   AA00A47A4c                 t    t          j        |                                                               d          S )Nzutf-8)base64	b64encodedigestdecode)r   s    r   to_b64_digestr(   )   s-    K..001188AAA    )r$   loggingtypingr   requestsr   r   	getLogger__name__r   Responsestrr   r"   r(    r)   r   <module>r2      s               		8	$	$X-> 8C=     4 4 4 4 4 4B# B B B B B Br)   