ó
    pyüi:  ã                   ó¢  • S SK r S SKJr  S SKJr  S SKJrJrJr  SSK	J
r
  SSKJr  SS	KJrJr  \(       a  SS
KJr  \ R$                  " S5      r " S S\5      r\S   r\" SS9 " S S5      5       rS\S\\\4   4S jrS\S\S-  S\4S jrS\S\S\4S jrS\\S4   S\\\4   S\S\S\4
S  jrS!\S"\S\S-  S#\S-  S$\S-  S\\\4   4S% jrg)&é    N)Ú	dataclass)ÚPath)ÚTYPE_CHECKINGÚLiteralÚ	TypedDicté   )Ú	constants)Úrepo_folder_nameé   )Úgit_hashÚsha_fileobj)ÚRepoFilez^[0-9a-f]{40}$c                   ó>   • \ rS rSr% \\S'   \\S'   \\S'   \\S'   Srg)ÚMismatché   ÚpathÚexpectedÚactualÚ	algorithm© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstrÚ__annotations__Ú__static_attributes__r   ó    Ú`/home/mande/repo/quber/.venv/lib/python3.13/site-packages/huggingface_hub/utils/_verification.pyr   r      s   ‡ Ø
ƒIØƒMØƒKØ†Nr   r   )Úsha256úgit-sha1T)Úfrozenc                   ód   • \ rS rSr% \\S'   \\S'   \\   \S'   \\   \S'   \\   \S'   \	\S'   Sr
g	)
ÚFolderVerificationé   ÚrevisionÚchecked_countÚ
mismatchesÚmissing_pathsÚextra_pathsÚverified_pathr   N)r   r   r   r   r   r   ÚintÚlistr   r   r   r   r   r   r$   r$      s1   ‡ àƒMØÓØ�X‘ÓØ˜‘9ÓØ�c‘ÓØÖr   r$   ÚrootÚreturnc                 ó¸   • U R                  S5       Vs0 s H9  oR                  5       (       d  M  UR                  U 5      R                  5       U_M;     sn$ s  snf )zU
Return a mapping of repo-relative path -> absolute path for all files under `root`.
Ú*)ÚrglobÚis_fileÚrelative_toÚas_posix)r.   Úps     r   Úcollect_local_filesr7   '   sD   € ð 8<·z±zÀ#´ÓV²°!Ï)É)Ï+Ó-ˆA�M‰M˜$Ó×(Ñ(Ó*¨AÒ-±ÑVÐVùÒVs
   ”A°$AÚstorage_folderr&   c                 óÄ  • U(       a  [         R                  U5      (       a  U$ U S-  nU S-  nU(       aH  X!-  nUR                  5       (       a  UR                  SS9R	                  5       $ [        SU SU S35      eUS-  nUR                  5       (       a  UR                  SS9R	                  5       $ UR                  5       (       d  [        S	U S
35      eUR                  5        Vs/ s HK  ofR                  5       (       d  M  [         R                  UR                  5      (       d  M?  UR                  PMM     nn[        U5      S:X  a  US   $ [        S5      es  snf )zJ
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.r   r   zhAmbiguous cached revision: multiple snapshots found and no refs to disambiguate. Please pass --revision.)
Ú_REGEX_COMMIT_HASHÚ	fullmatchr3   Ú	read_textÚstripÚ
ValueErrorÚis_dirÚiterdirÚnameÚlen)r8   r&   Úrefs_dirÚsnapshots_dirÚref_pathÚmain_refr6   Ú
candidatess           r   Ú_resolve_commit_hash_from_cacherL   .   sQ  € ö Ô&×0Ñ0°×:Ñ:Øˆà Ñ&€HØ" [Ñ0€MæØÑ&ˆØ×Ñ×ÑØ×%Ñ%¨wÐ%Ð7×=Ñ=Ó?Ð?Ü˜: h ZÐ/`ÐaiÐ`jÐjmÐnÓoÐoð ˜&Ñ €HØ×Ñ×ÑØ×!Ñ!¨7Ð!Ð3×9Ñ9Ó;Ð;à×Ñ×!Ñ!ÜÐFÀ}ÀoÐUuÐvÓwÐwà"/×"7Ñ"7Ô"9ÓqÒ"9˜Q¿X¹X¿Z“&ÔL^×LhÑLhÐij×ioÑio×Lp“&�!—&”&Ñ"9€JÐqÜ
ˆ:ƒ˜!ÓØ˜!‰}Ðä
Øróð ùò	 rs   Ã*EÄ"EÄ,Er   r   c                 ó  • U R                  S5       nUS:X  a"  [        U5      R                  5       sSSS5        $ US:X  a"  [        UR	                  5       5      sSSS5        $ [        SU 35      e! , (       d  f       g= f)zE
Compute the checksum of a local file using the requested algorithm.
Úrbr    Nr!   zUnsupported hash algorithm: )Úopenr   Úhexr   ÚreadrB   )r   r   Ústreams      r   Úcompute_file_hashrS   O   sm   € ð
 
�‰�4Œ˜FØ˜Ó Ü˜vÓ&×*Ñ*Ó,÷ 
‰ð ˜
Ó"Ü˜FŸK™K›MÓ*÷	 
‰ô
 Ð7¸	°{ÐCÓDÐD÷ 
�ús   ’A1»A1Á#A1Á1
A?Úremote_by_pathr   Úlocal_by_pathr+   c           
      óP  • [        U 5      n[        U5      n[        XE-
  5      n[        XT-
  5      n[        XE-  5      n/ n	U HË  n
X
   nX   n[        USS5      nUb  [        USS5      OSnUc&  [        U[        5      (       a  UR                  S5      nU(       a  Sn[        U5      R                  5       nO'UR                  nSn[        U5      R                  5       n[        XÏ5      nUU:w  d  M°  U	R                  [        U
UUUS95        MÍ     [        U[        U5      U	UUUS9$ )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_idrS   Úappendr   r$   rF   )rT   rU   r&   r+   Úremote_pathsÚlocal_pathsÚmissingÚextraÚbothr(   Úrel_pathÚremote_entryÚ
local_pathrW   Úlfs_shar   r   r_   r   s                      r   Úverify_mapsrj   \   s-  € ô �~Ó&€LÜ�mÓ$€Kä�\Ñ/Ó0€GÜ�;Ñ-Ó.€EÜ�,Ñ,Ó-€Dà!#€JãˆØ%Ñ/ˆØ"Ñ,ˆ
ä�l E¨4Ó0ˆØ25±/”'˜#˜x¨Ô.ÀtˆØ‰?œz¨#¬t×4Ñ4Ø—g‘g˜hÓ'ˆGÞØ"*ˆIÜ˜7“|×)Ñ)Ó+‰Hà"×*Ñ*ˆGØ"ˆIÜ˜7“|×)Ñ)Ó+ˆHä" :Ó9ˆà�XÕØ×Ñœh¨H¸xÐPVÐbkÑlÖmñ' ô* ØÜ˜$“iØØØØ#ñð r   Úrepo_idÚ	repo_typeÚ	cache_dirÚ	local_dirc                 ó&  • Ubd  [        U5      R                  5       R                  5       nUR                  5       (       d  [	        SU 35      eXR=(       d    [
        R                  4$ [        U=(       d    [
        R                  5      R                  5       R                  5       nU[        XS9-  nUR                  5       (       d  [	        SU S35      e[        Xr5      nUS-  U-  n	U	R                  5       (       d  [	        SU SU	 S35      eX˜4$ )	zO
Resolve the root directory to scan locally and the remote revision to verify.
z6Local directory does not exist or is not a directory: )rk   rl   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ÚresolverC   rB   r	   ÚDEFAULT_REVISIONÚHF_HUB_CACHEr
   ÚexistsrL   )
rk   rl   r&   rm   rn   r.   Ú
cache_rootr8   ÚcommitÚsnapshot_dirs
             r   Úresolve_local_rootry   Œ   s  € ð ÑÜ�I‹×)Ñ)Ó+×3Ñ3Ó5ˆØ�{‰{�}‰}ÜÐUÐVZÐU[Ð\Ó]Ð]Ø×<¤)×"<Ñ"<Ð=Ð=ä�i×9¤9×#9Ñ#9Ó:×EÑEÓG×OÑOÓQ€JØÔ"2¸7Ñ"XÑX€NØ× Ñ ×"Ñ"ÜØ,¨^Ð,<Ð<jÐkó
ð 	
ô -¨^ÓF€FØ! KÑ/°&Ñ8€LØ×Ñ× Ñ ÜÐKÈFÈ8ÐSVÐWcÐVdÐdeÐfÓgÐgØÐÐr   )ÚreÚdataclassesr   Úpathlibr   Útypingr   r   r   Ú r	   Úfile_downloadr
   Úshar   r   Úhf_apir   Úcompiler>   r   ÚHashAlgor$   r\   r   r7   rL   rS   rj   Útuplery   r   r   r   Ú<module>r…      se  ðÛ 	Ý !Ý ß 4Ñ 4å Ý ,ß &ö Ý!ð —Z’ZÐ 1Ó2Ð ôˆyô ð Ð'Ñ(€ñ �$Ñ÷ð ó ððW˜dð W t¨C°¨I¡ô Wð°Dð ÀCÈ$ÁJð ÐSVô ðB
E˜Dð 
E¨Xð 
E¸#ô 
Eð-à˜˜j˜Ñ)ð-ð ˜˜T˜	‘?ð-ð ð	-ð
 ð-ð ô-ð` àð ð ð ð �D‰jð	 ð
 �d‰{ð ð �d‰{ð ð ˆ4�ˆ9Ñõ r   