
    Y jVf                        S r SSKrSSKrSSKJr  SSKJrJr  SSKJ	r	  SSK
Jr  SSKJrJr  SSKrSSKJr  S	S
KJrJrJrJrJrJrJr  S	SKJrJr  SSKJrJrJ r J!r!J"r"J#r#  SSK$J%r%  \#" SS9r&\	" SS9 " S S5      5       r'\RP                  " S5      r)1 Skr*1 Skr+1 Skr,\RP                  " S5      r-SSSSS.r.0 r/\0" \,5       H  r1\1\/\1'   \1 S3\/\1 S3'   \1 S3\/\1 S 3'   M      \" S!\/\2\3S"9r4\	" SS9 " S# S$5      5       r5\6\\S-  4   r7\8\\9\2   4   r:S%\\\9\   4   S&\54S' jr;S%\\\9\   4   S&S4S( jr<S)\S&\6\8\2\4   \8\2\6\\4   4   4   4S* jr=S)\S+\>S&\6\?\7   \:4   4S, jr@S-\2S.\:S&\\\S-  \A/\>4   4S/ jrBS0\AS-  S1\2S2\AS&\>4S3 jrCS4\2S&\6\\7/\6\S54   4   \>4   4S6 jrDS)\S7\?\2   S&\'4S8 jrE\&R                  S9/ S:QS;9     SeS=\\2S-  \R                  " S>S94   S?\\>\R                  " S@S94   SA\\?\2   S-  \R                  " SBSCSDS94   SE\\4S-  \R                  " SFS94   SG\\HS-  \R                  " SHS94   S&S4SI jj5       rI\&R                  / SJQS;9   SfS7\\?\2   \R                  " SKS94   S=\\2S-  \R                  " S>S94   SL\\>\R                  " SMSNSOS94   SP\\>\R                  " SQS94   S&S4
SR jj5       rK\&R                  SSST/S;9   SfS=\\2S-  \R                  " S>S94   SL\\>\R                  " SMSNSOS94   SP\\>\R                  " SQS94   S&S4SU jj5       rL\&R                  / SVQS;9\R                  SSSS<S<S4SW\SX\SY\ S=\\2S-  \R                  " SZS94   S[\\2S-  \R                  " S\S94   S]\\>\R                  " S^S_S94   S`\\>\R                  " SaSbS94   Sc\!S&S4Sd jj5       rNg)gzHContains the 'hf cache' command group with cache management subcommands.    N)defaultdict)CallableMapping)	dataclass)Enum)	AnnotatedAny)CLIError   )ANSICachedRepoInfoCachedRevisionInfoCacheNotFoundHFCacheInfo_format_sizescan_cache_dir)parse_duration
parse_size   )	RepoIdArgRepoTypeOptRevisionOptTokenOpt
get_hf_apityper_factory)outzManage local cache directory.)helpT)frozenc                   T    \ rS rSr% \\   \S'   \\\\	   4   \S'   \
\S4   \S'   Srg)_DeletionResolution(   	revisionsselected.missing N)__name__
__module____qualname____firstlineno__	frozensetstr__annotations__dictr   r   tuple__static_attributes__r%       j/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/huggingface_hub/cli/cache.pyr    r    (   s0    ~>9-?#@@AA38_r0   r    zA^(?P<key>[a-zA-Z_]+)\s*(?P<op>==|!=|>=|<=|>|<|=)\s*(?P<value>.+)$>   <=>!=<=>=>   refssizetypeaccessedmodified>   namer9   r;   r<   z.^(?P<key>[a-zA-Z_]+)(?::(?P<order>asc|desc))?$descasc)r;   r<   r9   r=   z:asc_ascz:desc_descSortOptions)r:   modulec                   8    \ rS rSr% Sr\\S'   \\S'   \\S'   Srg)CacheDeletionCountsG   z>Simple counters summarizing cache deletions for CLI messaging.
repo_countpartial_revision_counttotal_revision_countr%   N)r&   r'   r(   r)   __doc__intr,   r/   r%   r0   r1   rE   rE   G   s    HOr0   rE   selected_by_reporeturnc                     SnSnSnU R                  5        HJ  u  pEU[        U5      -  n[        U5      [        UR                  5      :X  d  M7  US-  nU[        U5      -  nML     X#-
  n[        XU5      $ )z(Summarize deletions across repositories.r   r   )itemslenr"   rE   )rL   rG   total_revisionsrevisions_in_full_reposrepor"   rH   s          r1   summarize_deletionsrT   T   s|     JO+1133y>)y>S00!OJ#s9~5#	 4 -Fz?SSr0   c           
         [        U R                  5       S S9 H  nUR                   SUR                   3n[        X   S S9n[	        U5      [	        UR
                  5      :X  a  [        R                  " SU S35        Mi  [        R                  " SU S35        U Hc  nSR                  [        UR                  5      5      =(       d    S	n[        R                  " S
UR                   SU SUR                   35        Me     M     g)zBPretty-print selected cache revisions during confirmation prompts.c                 N    U R                   U R                  R                  5       4$ N	repo_typerepo_idlowerrS   s    r1   <lambda>0print_cache_selected_revisions.<locals>.<lambda>h   s    $..RVR^R^RdRdRfAgr0   key/c                     U R                   $ rW   commit_hashrevs    r1   r]   r^   j       3??r0     - z (entire repo): z
(detached)z      z [z] N)sortedkeysrY   rZ   rP   r"   r   textjoinr8   rd   size_on_disk_str)rL   rS   repo_keyr"   revisionr8   s         r1   print_cache_selected_revisionsrr   f   s    ',,.4ghnn%Qt||n5+17RS	y>S00HHtH:^454z#$!H88F8==12BlDHHvh2232dV2h>W>W=XYZ " ir0   hf_cache_infoc                     0 n0 nU R                    HQ  nUR                  R                  5       nX1U'   UR                   H   nX54X%R                  R                  5       '   M"     MS     X4$ )zPCreate lookup tables so CLI commands can resolve repo ids and revisions quickly.)reposcache_idr[   r"   rd   )rs   repo_lookuprevision_lookuprS   rp   rq   s         r1   build_cache_indexry   u   sk     .0KLNO##==&&( $HH=A<LO006689 ' $
 ''r0   include_revisionsc          	         / n0 n[        U R                  S S9nU H  n[        UR                   VVs1 s H  ofR                    H  owiM     M     snn5      X5'   U(       a0  [        UR                  S S9 H  nUR                  XV45        M     Mv  UR                  US45        M     U(       a  UR                  S S9  X#4$ UR                  S S9  X#4$ s  snnf )z;Flatten cache metadata into rows consumed by `hf cache ls`.c                 N    U R                   U R                  R                  5       4$ rW   rX   r\   s    r1   r]   'collect_cache_entries.<locals>.<lambda>   s    QUQ]Q]QcQcQe@fr0   r_   c                     U R                   $ rW   rc   re   s    r1   r]   r}      rg   r0   Nc                 P    U S   R                   U S   b  U S   R                  4$ S4$ )Nr   r    )rv   rd   entrys    r1   r]   r}      s2    a!!(-a(<a$$BDr0   c                      U S   R                   $ )Nr   )rv   r   s    r1   r]   r}      s    uQx'8'8r0   )rk   ru   r*   r"   r8   appendsort)rs   rz   entriesrepo_refs_mapsorted_reposrS   rq   refs           r1   collect_cache_entriesr      s     !#G!#M---3fgL'T^^(e^WdWdPSWd^(ef"4>>7RS/0 T NND$<(   	 	
 !! 	89!! )fs   Cexprr   c           
        ^^^^^	^
^ [         R                  U R                  5       5      nU(       d  [        SU  S35      eUR	                  S5      R                  5       mUR	                  S5      mUR	                  S5      R                  5       mT[        ;  a"  [        ST SU  S[        [        5       S	35      eT[        ;  a"  [        S
T SU  S[        [        5       S	35      eTS:X  a  [        T5      m
UU
4S j$ TS;   a@  [        TR                  5       5      m	S[        S[        S-  S[        S[        4UUU	4S jjnU$ TS:X  aJ  TR                  5       mTS:w  a  [        ST S35      eS[        S[        S-  S[        S[        4U4S jjnU$ TS:w  a  [        ST S	35      eS[        S[        S-  S[        S[        4UU4S jjnU$ )zqConvert a `hf cache ls` filter expression into the yes/no test we apply to each cache entry before displaying it.zInvalid filter expression: 'z'.r`   opvaluezUnsupported operator 'z' in filter ''. Must be one of .zUnsupported filter key '' in 'r9   c                 \   > [        Ub  UR                  TT5      $ U R                  TT5      $ rW   )_compare_numericsize_on_disk)rS   rq   _r   size_thresholds      r1   r]   &compile_cache_filter.<locals>.<lambda>   s3    )9%-%9H!!*
?C?P?P*
r0   >   r;   r<   rS   rq   NnowrM   c                    > TS:X  a  U R                   OUb  UR                  OU R                  nUc  g[        X#-
  TT5      $ )Nr;   F)last_accessedlast_modifiedr   )rS   rq   r   	timestampr`   r   secondss       r1   _time_filter*compile_cache_filter.<locals>._time_filter   sU     *$ "" ' ++''   #CORAAr0   r:   r3   z/Only '=' is supported for 'type' filters. Got 'r   c                 >   > U R                   R                  5       T:H  $ rW   )rY   r[   )rS   rq   r   expecteds      r1   _type_filter*compile_cache_filter.<locals>._type_filter   s    >>'')X55r0   z.Only '=' is supported for 'refs' filters. Got c                    > Ub  UR                   OTR                  U [        5       5      nTR                  5       U Vs/ s H  oDR                  5       PM     sn;   $ s  snf rW   )r8   getr*   r[   )rS   rq   r   r8   r   r   	value_raws        r1   _refs_filter*compile_cache_filter.<locals>._refs_filter   sM    $,$88==m>O>OPTV_Va>bD??$(E(EEE(Es   A)_FILTER_PATTERNmatchstrip
ValueErrorgroupr[   _ALLOWED_OPERATORSlist_FILTER_KEYSr   r   r   r   floatbool)r   r   r   r   r   r   r   r`   r   r   r   r   s    `    @@@@@@r1   compile_cache_filterr      s    !!$**,/E7vR@AA
++e

"
"
$C	T	BG$**,I	##1"]4&HZ[_`r[sZttuvww
,3C5tfDVW[\hWiVjjklmm
f}#I.
 	
 && !23
	B~ 
	B9Kd9R 
	BY^ 
	Bcg 
	B 
	B 
f}??$9NrdRTUVV	6~ 	69Kd9R 	6W\ 	6ae 	6  9MbTQRSTT	F~ 	F9Kd9R 	FW\ 	Fae 	F 	F r0   leftr   rightc                 b    U c  gX:H  X:g  X:  X:  X:  X:*  S.nX;  a  [        SU 35      eX1   $ )z)Evaluate numeric comparisons for filters.F)r3   r5   r4   r2   r7   r6   z)Unsupported numeric comparison operator: )r   )r   r   r   comparisonss       r1   r   r      sT    | ]m\\mmK 
DRDIJJ?r0   	sort_expr.c           
        ^ [         R                  U R                  5       R                  5       5      nU(       d  [	        SU  S35      eUR                  S5      R                  5       mUR                  S5      nT[        ;  a"  [	        ST SU  S[        [        5       S35      eU(       a  UO[        T   nUS	:H  nS
[        S[        [        S4   4U4S jjnXT4$ )zConvert a `hf cache ls` sort expression into a key function for sorting entries.

Returns:
    A tuple of (key_function, reverse_flag) where reverse_flag indicates whether
    to sort in descending order (True) or ascending order (False).
zInvalid sort expression: 'z5'. Expected format: 'key' or 'key:asc' or 'key:desc'.r`   orderzUnsupported sort key 'r   r   r   r>   r   rM   .c                   > U u  pTS:X  a  UR                   R                  5       nU4$ TS:X  a!  Ub  UR                  nU4$ UR                  nU4$ TS:X  a!  UR                  b  UR                  nU4$ SnU4$ TS:X  a?  Ub  UR                  b  UR                  OSnU4$ UR                  b  UR                  OSnU4$ [        ST 35      e)Nr=   r9   r;   g        r<   zUnsupported sort key: )rv   r[   r   r   r   r   )r   rS   rq   r   r`   s       r1   	_sort_key%compile_cache_sort.<locals>._sort_key
  s    &=,,.E8O&=-5-AH))E8O HLGXGXE8O* +/*<*<*HD&&E8O ORE8O*#2:2H2H2T..Z] 8O /3.@.@.L**RU8O 1#788r0   )_SORT_PATTERNr   r   r[   r   r   
_SORT_KEYSr   _SORT_DEFAULT_ORDER
CacheEntryr.   r	   )r   r   explicit_orderr   reverser   r`   s         @r1   compile_cache_sortr      s     	 1 7 7 9:E5i[@uvww
++e

"
"
$C[[)N
*1#fYKGYZ^_iZjYkklmnn -N2Ec2JEvoG9 9c3h 9< r0   targetsc                    [        U 5      u  p#[        [        5      n[        5       n/ nU GH  nUR                  5       nU(       d  M  UR	                  5       n	[
        R                  " SU	5      (       a[  UR                  U	5      n
U
c  UR                  U5        Mp  U
u  pXK   R                  U5        UR                  UR                  5        M  UR                  U	5      nUc  UR                  U5        M  UR                   H1  nXM   R                  U5        UR                  UR                  5        M3     GM     UR                  5        VVs0 s H  u  pU[        U5      _M     nnn[        [        U5      U[        U5      S9$ s  snnf )z8Resolve the deletion targets into a deletion resolution.z[0-9a-fA-F]{40}r"   r#   r$   )ry   r   setr   r[   re	fullmatchr   r   addrd   r"   rO   r*   r    r.   )rs   r   rw   rx   r#   r"   r$   
raw_targettargetloweredr   rS   rq   matched_reporevsfrozen_selecteds                   r1   _resolve_deletion_targetsr   +  sW   #4]#C K>I#>NH%IG
!!#,,.<<*G44#''0E}z*"NDNx(MM(../"w/NN:&$..H"&&x0MM(../ /+ 2 @H~~?OP?OtYt_,?OOPI& g  Qs   Fz	list | ls)zhf cache lszhf cache ls --revisionsz*hf cache ls --filter "size>1GB" --limit 20zhf cache ls --format json)examplesF	cache_dirz9Cache directory to scan (defaults to Hugging Face cache).r"   zCInclude revisions in the output instead of aggregated repositories.filterz-fz--filterzZFilter entries (e.g. 'size>1GB', 'type=model', 'accessed>7d'). Can be used multiple times.r   a  Sort entries by key. Supported keys: 'accessed', 'modified', 'name', 'size'. Append ':asc' or ':desc' to explicitly set the order (e.g., 'modified:asc'). Defaults: 'accessed', 'modified', 'size' default to 'desc' (newest/biggest first); 'name' defaults to 'asc' (alphabetical).limitzSLimit the number of results returned. Returns only the top N entries after sorting.c                     [        U 5      nU=(       d    / n[	        XQS9u  p U V
s/ s H  n
[        X5      PM     nn
[        R                  " 5       nU H+  nU Vs/ s H  o" US   US   U5      (       d  M  UPM     nnM-     U(       a)   [        UR                  5      u  nnUR                  UUS9  Ub%  US:  a  [        R                  " SU S35      eUSU nU(       a  U VVs/ s Hx  u  nnUc  M  UR                  UR                  UR                   UR"                  [        UR$                  5      UR&                  UR(                  [+        UR,                  5      S	.PMz     nnn[.        R0                  " U/ S
QSSS0S9  OU VVs/ s Hv  u  nnUR                  UR                  UR                   UR&                  UR2                  =(       d    SUR(                  [+        U	R5                  U[7        5       5      5      S.PMx     nnn[.        R0                  " U/ SQSSS0S9  U(       a  U VVs1 s H  u  nnUiM
     nnn[9        U5      nU(       a%  [;        S U 5       5      n[;        S U 5       5      nO$[;        S U 5       5      n[;        S U 5       5      n[.        R<                  " [>        R@                  " SU SU S[C        U5       S35      5        gg! [         a  n[        SUR                   35      UeSnAff = fs  sn
f ! [         a%  n[        R                  " [        U5      5      UeSnAff = fs  snf ! [         a%  n[        R                  " [        U5      5      UeSnAff = fs  snnf s  snnf s  snnf )z&List cached repositories or revisions.Cache directory not found: N)rz   r   r   )r`   r   z&Limit must be a positive integer, got r   )idrZ   rY   rq   snapshot_pathr9   r   r8   )r   rq   r9   r   r8   rq   r9   r   )headersid_key
alignmentsr   )r   rZ   rY   r9   r   r   r8   )r   r9   r   r   r8   r   c              3   4   #    U  H  u  pUc  M
  Sv   M     g 7f)Nr   r%   .0r   rf   s      r1   	<genexpr>ls.<locals>.<genexpr>  s      LvqCs   		c              3   H   #    U  H  u  pUc  M
  UR                   v   M     g 7frW   r   r   s      r1   r   r     s     WG&!s-S--Gs   	""c              3   L   #    U  H  n[        UR                  5      v   M     g 7frW   )rP   r"   r   rS   s     r1   r   r     s      NT^^!4!4s   "$c              3   8   #    U  H  oR                   v   M     g 7frW   r   r   s     r1   r   r     s     H<4..<   z
Found z repo(s) for a total of z revision(s) and z	 on disk.)"r   r   r
   r   r   r   r   typerBadParameterr+   timer   r   r   rv   rZ   rY   rd   r   ro   last_modified_strrk   r8   r   tablelast_accessed_strr   r*   rP   sumrm   r   boldr   )r   r"   r   r   r   rs   excfiltersr   r   r   
filter_fnsr   fnr   sort_key_fnr   rS   rq   rO   r   unique_reposrG   revision_count
total_sizes                            r1   lsr   W  sf   ^O&y1 lG2=^G4LSTGD*4?G
T ))+C&-MgUE!HeAh1L5gM  	8#5djj#A KLL['L:
 19$$'MeWTU%VWW&5/ #*
 #*h	mm<<!^^$00!$X%;%;!< 11!)!;!;x}}-	 #* 	 
 			G(		
" #
 #a mm<<!^^--!%!7!7!=2!%!7!7}00y{CD # 	 
 			L(		
 ,34GqG4&
  L LLNWGWWJ  N NNNH<HHJII:,&>~>N O$Z01<	
 M  O4S]]ODE3NO U 4  S*34
 N  	8$$SX.C7	8
*
( 5s|   K L L
L M9M(M )
M87A1M8A=M>3N
L)LL
L 
L> L99L>
M5 M00M5)zhf cache rm model/gpt2zhf cache rm <revision_hash>z hf cache rm model/gpt2 --dry-runzhf cache rm model/gpt2 --yeszQOne or more repo IDs (e.g. model/bert-base-uncased) or revision hashes to delete.yesz-yz--yeszSkip confirmation prompt.dry_runz,Preview deletions without removing anything.c           	      b    [        U5      n[	        X@5      nUR
                  (       a;  SR                  S UR
                   5       5      n[        R                  " SU 35        [        UR                  5      S:X  a*  [        R                  " S5        [        R                  " SS9eUR                  " [        UR                  5      6 n[!        UR"                  5      n	/ n
U	R$                  (       a  U
R'                  U	R$                   S	35        U	R(                  (       a  U
R'                  U	R(                   S
35        U
(       d  U
R'                  U	R*                   S
35        SR                  U
5      n[        R                  " SU SUR,                   S35        [/        UR"                  5        U(       a7  [        R0                  " SSU	R$                  U	R*                  UR,                  S9  g[        R2                  " SUS9  UR5                  5         [!        UR"                  5      n	[        R0                  " SU	R$                   SU	R*                   SUR,                   S3U	R$                  U	R*                  UR,                  S9  g! [         a  n[        SUR                   35      UeSnAff = f)z(Remove cached repositories or revisions.r   N
c              3   ,   #    U  H
  nS U 3v   M     g7frh   Nr%   )r   r   s     r1   r   rm.<locals>.<genexpr>  s     K8Jud5'N8J   zCould not find in cache:
r   zNothing to delete.codez repo(s)z revision(s)z and About to delete z totalling r   Dry run: no files were deleted.T)r   ru   r"   r9   zProceed with deletion?r   Deleted z repo(s) and z revision(s); freed )repos_deletedrevisions_deletedfreed)r   r   r
   r   r   r$   rn   r   warningrP   r"   rm   r   Exitdelete_revisionsrk   rT   r#   rG   r   rH   rI   expected_freed_size_strrr   resultconfirmexecute)r   r   r   r   rs   r   
resolutiondetailsstrategycountssummary_partssummary_texts               r1   rmr    sG   JO&y1 +=BJ))K
8J8JKK0	:;
: A%%&jja  --vj6J6J/KLH !4!45F!M 1 12(;<$$ = =>lKL ; ;<LIJ<<.LHH~[9Y9Y8ZZ[\]":#6#67

-##1111	
 	KK(c2 !4!45FJJ
6$$%]63N3N2O P2231	6'' 55..U  O4S]]ODE3NOs   J 
J.J))J.zhf cache prunezhf cache prune --dry-runc                     [        U 5      n0 n[	        5       nUR
                   HD  n[        S UR                   5       5      nU(       d  M(  XU'   UR                  S U 5       5        MF     [        U5      S:X  a  [        R                  " S5        g[        [        U5      USS9n	UR                  " [        U	R                  5      6 n
[        U5      n[        R                  " S	UR                    S
U
R"                   S35        [%        U5        U(       a,  [        R&                  " SSUR                   U
R"                  S9  g[        R(                  " SUS9  U
R+                  5         [        R&                  " SUR                    SU
R"                   S3UR                   U
R"                  S9  g! [         a  n[        SUR                   35      UeSnAff = f)z)Remove detached revisions from the cache.r   Nc              3   \   #    U  H"  n[        UR                  5      S :X  d  M  Uv   M$     g7f)r   N)rP   r8   r   rq   s     r1   r   prune.<locals>.<genexpr>Y  s#     `n(HMMHZ^_H_XXns   ,	,c              3   8   #    U  H  oR                   v   M     g 7frW   rc   r  s     r1   r   r  ]  s     Gh(--hr   r   z2No unreferenced revisions found. Nothing to prune.r%   r   r  z unreferenced revision(s) (z total).r  T)r   r"   r9   zProceed?r  r  z! unreferenced revision(s); freed r   )r	  r
  )r   r   r
   r   r   ru   r*   r"   updaterP   r   rm   r    r  rk   rT   rI   r  rr   r  r  r  )r   r   r   rs   r   r#   r"   rS   detachedr  r  r  s               r1   pruner   9  s   0O&y1 EGH%I##`dnn``!GhGG $ 9~EF$I&J
 --vj6J6J/KLH *FHH
66677RS[SsSsRtt|} #8,

-1111		
 	KK
$JJ
6..//PQYQqQqPrrst 55..S  O4S]]ODE3NOs   F. .
G8GG)zhf cache verify gpt2z)hf cache verify gpt2 --revision refs/pr/1z.hf cache verify my-dataset --repo-type datasetrZ   rY   rq   zXCache directory to use when verifying files from cache (defaults to Hugging Face cache).	local_dirz?If set, verify files under this directory instead of the cache.fail_on_missing_filesz--fail-on-missing-filesz?Fail if some files exist on the remote but are missing locally.fail_on_extra_filesz--fail-on-extra-fileszLFail if some files exist locally but are not present on the remote revision.tokenc           
         Ub-  Ub*  [         R                  " S5        [        R                  " SS9e[	        US9nUR                  U [        US5      (       a  UR                  O
[        U5      UUUUS9n	Sn
U	R                  (       a=  S	R                  S
 U	R                   5       5      n[         R                  " SU 35        Sn
U	R                  (       aq  U(       a>  S	R                  S U	R                   5       5      n[         R                  " SU 35        Sn
O,[         R                  " [        U	R                  5       S35        U	R                  (       aq  U(       a>  S	R                  S U	R                   5       5      n[         R                  " SU 35        Sn
O,[         R                  " [        U	R                  5       S35        U	R                   nU
S:w  aJ  [         R                  " SU  SUR                   SU SU	R"                   35        [        R                  " U
S9e[         R$                  " SU	R&                   SUR                   SU  S3U UR                  U	R&                  [        U5      S9  g)a  Verify checksums for a single repo revision from cache or a local directory.

Examples:
  - Verify main revision in cache: `hf cache verify gpt2`
  - Verify specific revision: `hf cache verify gpt2 --revision refs/pr/1`
  - Verify dataset: `hf cache verify karpathy/fineweb-edu-100b-shuffle --repo-type dataset`
  - Verify local dir: `hf cache verify deepseek-ai/DeepSeek-OCR --local-dir /path/to/repo`
NzCCannot pass both --local-dir and --cache-dir. Use one or the other.r   r  )r$  r   )rZ   rY   rq   r!  r   r$  r   r   c           
   3   V   #    U  H  nS US    SUS    SUS    SUS    3v   M!     g7f)	rh   pathz: expected r   z (	algorithmz), got actualNr%   )r   ms     r1   r   verify.<locals>.<genexpr>  sE      
& 1V9+[:r!K.9IQRS[Q\P]^&s   ')u<   ❌ Checksum verification failed for the following file(s):
r   c              3   ,   #    U  H
  nS U 3v   M     g7fr   r%   r   ps     r1   r   r+    s     I4Hq$qc
4Hr  u6   ❌ Missing files (present remotely, absent locally):
zM remote file(s) are missing locally. Use --fail-on-missing-files for details.c              3   ,   #    U  H
  nS U 3v   M     g7fr   r%   r-  s     r1   r   r+    s     G4Fq$qc
4Fr  u4   ❌ Extra files (present locally, absent remotely):
zV local file(s) do not exist on the remote repo. Use --fail-on-extra-files for details.zVerification failed for 'z' (z) in z.
  Revision: z	Verified z file(s) for z 'z'. All checksums match.)rZ   rY   checkedr'  )r   errorr   r  r   verify_repo_checksumshasattrr   r+   
mismatchesrn   rm   missing_pathsr  rP   extra_pathsverified_pathrq   r  checked_count)rZ   rY   rq   r   r!  r"  r#  r$  apir  	exit_coder  verified_locations                r1   verifyr<    s:   ` !6		WXjja  
5
!C&&%,Y%@%@)//c)n ' F I)) 
&&
 
 	PQXPYZ[	 iiIF4H4HIIGHHNwiXYIKKv++,- .; ;
 iiGF4F4FGGGHHLWIVWIKKv))*+ ,9 9
 ,,A~		'yIOO3DEJ[I\\klrl{l{k|}	
 jji((JJ
F(()y6Gr'Rij//$$"#r0   )NFNNN)NFF)OrJ   r   r   collectionsr   collections.abcr   r   dataclassesr   enumr   typingr   r	   r   huggingface_hub.errorsr
   utilsr   r   r   r   r   r   r   utils._parsingr   r   
_cli_utilsr   r   r   r   r   r   _outputr   	cache_clir    compiler   r   r   r   r   r   _sort_options_dictrk   r`   r+   r&   rB   rE   r.   r   r-   r*   RepoRefsMaprT   rr   ry   r   r   r   r   r   r   r   r   commandOptionrK   r   Argumentr  r   modelr<  r%   r0   r1   <module>rO     s   O 	  # - !  !  + v v v 7 ` `  >?	 $   **ab6 ?5


LM    *C!s*-d|#d|$+.%u#e}% 
 ="43xP $   >#5#<<=
>9S>12Tni8J.KKLTT$[W^YWiMj=j5k [pt [((
n	eN$667	78:("""6:"
4
[()"4>
>)>~1D8%@$FG>B54< S  4 (3# 3%*uSRUX9V0WY]0]*^ 3l&[ &49 &Qd &X    	 	 	 	 	G|
d
L	
	|
 V	
	|
 S	Dm	
	|
* d7	
	+|
< d
f	
	=|
H 
I|
|
~   ( 	 	 	5OS	d	
	O d
L	
	O 
,	
	
O* ?	
	+O6 
7OOd -/IJK 	 	 	)Fd
L	
	F 
,	
	
F ?	
	F* 
+F LFR    )..  	 	 	 	=fff f d
k	
		f d
R	
	f  %%R	
	!f. ##_	
	/f< =f> 
?ffr0   