§
    }Štj:  ã                   óÈ  — d dl Z d dlmZ d dlmZ d dlmZmZmZ ddl	m
Z
 ddlmZ dd	lmZmZ erdd
lmZ  e j        d¦  «        Z G d„ de¦  «        Zed         Z ed¬¦  «         G d„ d¦  «        ¦   «         Zdedeeef         fd„Zdededz  defd„Zdededefd„Zdeedf         deeef         dededef
d „Zd!ed"ededz  d#edz  d$edz  deeef         fd%„ZdS )&é    N)Ú	dataclass)ÚPath)ÚTYPE_CHECKINGÚLiteralÚ	TypedDicté   )Ú	constants)Úrepo_folder_nameé   )Úgit_hashÚsha_fileobj)ÚRepoFilez^[0-9a-f]{40}$c                   ó8   — e Zd ZU eed<   eed<   eed<   eed<   dS )ÚMismatchÚpathÚexpectedÚactualÚ	algorithmN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__© ó    úa/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/huggingface_hub/utils/_verification.pyr   r      s4   € € € € € € Ø
€I€I�IØ€M€M�MØ€K€K�KØ€N€N�N€N€Nr   r   )Úsha256úgit-sha1T)Úfrozenc                   óp   — e Zd ZU eed<   eed<   ee         ed<   ee         ed<   ee         ed<   eed<   dS )ÚFolderVerificationÚrevisionÚchecked_countÚ
mismatchesÚmissing_pathsÚextra_pathsÚverified_pathN)	r   r   r   r   r   ÚintÚlistr   r   r   r   r   r!   r!      sc   € € € € € € à€M€M�MØÐÐÑØ�X”ÐÐÑØ˜”9ÐÐÑØ�c”ÐÐÑØÐÐÑÐÐr   r!   ÚrootÚreturnc                 óF   ‡ — ˆ fd„‰                       d¦  «        D ¦   «         S )z]
    Return a mapping of repo-relative path -> absolute path for all files under `root`.
    c                 óˆ   •— i | ]>}|                      ¦   «         ¯|                     ‰¦  «                             ¦   «         |“Œ?S r   )Úis_fileÚrelative_toÚas_posix)Ú.0Úpr*   s     €r   ú
<dictcomp>z'collect_local_files.<locals>.<dictcomp>+   s@   ø€ ÐVÐVÐV°!È!Ï)Ê)É+Ì+ÐVˆA�MŠM˜$ÑÔ×(Ò(Ñ*Ô*¨AÐVÐVÐVr   Ú*)Úrglob)r*   s   `r   Úcollect_local_filesr6   '   s*   ø€ ð WÐVÐVÐV°t·z²zÀ#±´ÐVÑVÔVÐVr   Ústorage_folderr"   c                 ód  — |rt                                |¦  «        r|S | dz  }| dz  }|rW||z  }|                     ¦   «         r(|                     d¬¦  «                             ¦   «         S t          d|› d|› d�¦  «        ‚|dz  }|                     ¦   «         r(|                     d¬¦  «                             ¦   «         S |                     ¦   «         st          d	|› d
�¦  «        ‚d„ |                     ¦   «         D ¦   «         }t          |¦  «        dk    r|d         S t          d¦  «        ‚)zR
    Resolve a commit hash from a cache repo folder and an optional revision.
    ÚrefsÚ	snapshotszutf-8)Úencodingz
Revision 'z1' could not be resolved in cache (expected file 'z').Úmainz+Cache repo is missing snapshots directory: z . Provide --revision explicitly.c                 ó‚   — g | ]<}|                      ¦   «         ¯t                               |j        ¦  «        ¯5|j        ‘Œ=S r   )Úis_dirÚ_REGEX_COMMIT_HASHÚ	fullmatchÚname)r1   r2   s     r   ú
<listcomp>z3_resolve_commit_hash_from_cache.<locals>.<listcomp>F   s?   € ÐqÐqÐq˜Q¸Q¿XºX¹Z¼ZÐqÕL^×LhÒLhÐijÔioÑLpÔLpÐq�!”&ÐqÐqÐqr   r   r   zhAmbiguous cached revision: multiple snapshots found and no refs to disambiguate. Please pass --revision.)	r?   r@   r.   Ú	read_textÚstripÚ
ValueErrorr>   ÚiterdirÚlen)r7   r"   Úrefs_dirÚsnapshots_dirÚref_pathÚmain_refÚ
candidatess          r   Ú_resolve_commit_hash_from_cacherM   .   sj  € ð ð Õ&×0Ò0°Ñ:Ô:ð Øˆà Ñ&€HØ" [Ñ0€Màð pØ˜hÑ&ˆØ×ÒÑÔð 	@Ø×%Ò%¨wÐ%Ñ7Ô7×=Ò=Ñ?Ô?Ð?ÝÐn hÐnÐnÐaiÐnÐnÐnÑoÔoÐoð ˜&Ñ €HØ×ÒÑÔð <Ø×!Ò!¨7Ð!Ñ3Ô3×9Ò9Ñ;Ô;Ð;à×ÒÑ!Ô!ð xÝÐvÀ}ÐvÐvÐvÑwÔwÐwàqÐq -×"7Ò"7Ñ"9Ô"9ÐqÑqÔq€JÝ
ˆ:�„˜!ÒÐØ˜!Œ}Ðå
Ørñô ð r   r   r   c                 ó8  — |                       d¦  «        5 }|dk    r-t          |¦  «                             ¦   «         cddd¦  «         S |dk    r-t          |                     ¦   «         ¦  «        cddd¦  «         S t          d|› �¦  «        ‚# 1 swxY w Y   dS )zM
    Compute the checksum of a local file using the requested algorithm.
    Úrbr   Nr   zUnsupported hash algorithm: )Úopenr   Úhexr   ÚreadrE   )r   r   Ústreams      r   Úcompute_file_hashrT   O   s  € ð
 
�Š�4‰Œð E˜FØ˜Ò Ð Ý˜vÑ&Ô&×*Ò*Ñ,Ô,ðEð Eð Eð Eñ Eô Eð Eð Eð ˜
Ò"Ð"Ý˜FŸKšK™MœMÑ*Ô*ð	Eð Eð Eð Eñ Eô Eð Eð Eõ
 ÐC¸	ÐCÐCÑDÔDÐDðEð Eð Eð Eøøøð Eð Eð Eð Eð Eð Es   –'BÁ
&BÁ=BÂBÂBÚremote_by_pathr   Úlocal_by_pathr'   c           	      óØ  — t          | ¦  «        }t          |¦  «        }t          ||z
  ¦  «        }t          ||z
  ¦  «        }t          ||z  ¦  «        }g }	|D ]ð}
| |
         }||
         }t          |dd¦  «        }|�t          |dd¦  «        nd}|€*t          |t          ¦  «        r|                     d¦  «        }|r$d}t          |¦  «                             ¦   «         }n*|j        }d}t          |¦  «                             ¦   «         }t          ||¦  «        }||k    r&|	 
                    t          |
|||¬¦  «        ¦  «         Œñt          |t          |¦  «        |	|||¬¦  «        S )zHCompare remote entries and local files and return a verification result.ÚlfsNr   r   )r   r   r   r   )r"   r#   r$   r%   r&   r'   )ÚsetÚsortedÚgetattrÚ
isinstanceÚdictÚgetr   ÚlowerÚblob_idrT   Úappendr   r!   rG   )rU   rV   r"   r'   Úremote_pathsÚlocal_pathsÚmissingÚextraÚbothr$   Úrel_pathÚremote_entryÚ
local_pathrX   Úlfs_shar   r   r`   r   s                      r   Úverify_mapsrk   \   sˆ  € õ �~Ñ&Ô&€LÝ�mÑ$Ô$€Kå�\ KÑ/Ñ0Ô0€GÝ�; Ñ-Ñ.Ô.€EÝ�, Ñ,Ñ-Ô-€Dà!#€Jàð nð nˆØ% hÔ/ˆØ" 8Ô,ˆ
å�l E¨4Ñ0Ô0ˆØ25°/•'˜#˜x¨Ñ.Ô.Ð.ÀtˆØˆ?�z¨#­tÑ4Ô4ˆ?Ø—g’g˜hÑ'Ô'ˆGØð 	,Ø"*ˆIÝ˜7‘|”|×)Ò)Ñ+Ô+ˆHˆHà"Ô*ˆGØ"ˆIÝ˜7‘|”|×)Ò)Ñ+Ô+ˆHå" :¨yÑ9Ô9ˆà�XÒÐØ×Ò�h¨H¸xÐPVÐbkÐlÑlÔlÑmÔmÐmøåØÝ˜$‘i”iØØØØ#ðñ ô ð r   Úrepo_idÚ	repo_typeÚ	cache_dirÚ	local_dirc                 óX  — |�it          |¦  «                             ¦   «                              ¦   «         }|                     ¦   «         st	          d|› �¦  «        ‚||pt
          j        fS t          |pt
          j        ¦  «                             ¦   «                              ¦   «         }|t          | |¬¦  «        z  }| 	                    ¦   «         st	          d|› d�¦  «        ‚t          ||¦  «        }|dz  |z  }	|	                     ¦   «         st	          d|› d|	› d	�¦  «        ‚|	|fS )
zW
    Resolve the root directory to scan locally and the remote revision to verify.
    Nz6Local directory does not exist or is not a directory: )rl   rm   zRepo is not present in cache: z.. Use 'hf download' first or pass --local-dir.r:   z0Snapshot directory does not exist for revision 'z': ú.)r   Ú
expanduserÚresolver>   rE   r	   ÚDEFAULT_REVISIONÚHF_HUB_CACHEr
   ÚexistsrM   )
rl   rm   r"   rn   ro   r*   Ú
cache_rootr7   ÚcommitÚsnapshot_dirs
             r   Úresolve_local_rootrz   Œ   sE  € ð ÐÝ�I‰Œ×)Ò)Ñ+Ô+×3Ò3Ñ5Ô5ˆØ�{Š{‰}Œ}ð 	^ÝÐ\ÐVZÐ\Ð\Ñ]Ô]Ð]Ø�hÐ<¥)Ô"<Ð=Ð=å�iÐ9¥9Ô#9Ñ:Ô:×EÒEÑGÔG×OÒOÑQÔQ€JØÕ"2¸7ÈiÐ"XÑ"XÔ"XÑX€NØ× Ò Ñ"Ô"ð 
ÝØk¨^ÐkÐkÐkñ
ô 
ð 	
õ -¨^¸XÑFÔF€FØ! KÑ/°&Ñ8€LØ×ÒÑ Ô ð hÝÐfÈFÐfÐfÐWcÐfÐfÐfÑgÔgÐgØ˜ÐÐr   )ÚreÚdataclassesr   Úpathlibr   Útypingr   r   r   Ú r	   Úfile_downloadr
   Úshar   r   Úhf_apir   Úcompiler?   r   ÚHashAlgor!   r]   r   r6   rM   rT   rk   Útuplerz   r   r   r   ú<module>r†      sˆ  ðØ 	€	€	€	Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ð ð "Ø!Ð!Ð!Ð!Ð!Ð!ð  �R”ZÐ 1Ñ2Ô2Ð ðð ð ð ð ˆyñ ô ð ð Ð'Ô(€ð €�$ÐÑÔðð ð ð ð ñ ô ñ ÔððW˜dð W t¨C°¨I¤ð Wð Wð Wð Wð°Dð ÀCÈ$ÁJð ÐSVð ð ð ð ðB
E˜Dð 
E¨Xð 
E¸#ð 
Eð 
Eð 
Eð 
Eð-à˜˜j˜Ô)ð-ð ˜˜T˜	”?ð-ð ð	-ð
 ð-ð ð-ð -ð -ð -ð` àð ð ð ð �D‰jð	 ð
 �d‰{ð ð �d‰{ð ð ˆ4�ˆ9Ôð ð  ð  ð  ð  ð  r   