
    _iq                        S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKJrJrJrJrJrJrJrJr  SSKrSSKJr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9r) " S S\*\5      r+\	" SS9 " S S5      5       r,\RZ                  " S5      r.1 Skr/1 Skr01 Skr1\RZ                  " S5      r2SSSSS.r30 r4\5" \15       H  r6\6\4\6'   \6 S3\4\6 S3'   \6 S3\4\6 S3'   M      \" S \4\*\7S!9r8\	" SS9 " S" S#5      5       r9\\\\   4   r:\\\;\*   4   r<S$\\\;\   4   S%\94S& jr=S$\\\;\   4   S%S4S' jr>S(\S%\\\*\4   \\*\\\4   4   4   4S) jr?S(\S*\@S%\\\:   \<4   4S+ jrAS,\*S-\<S%\\\\   \B/\@4   4S. jrCS/\\:   S*\@S-\<S%\\\*\4      4S0 jrDS/\\:   S*\@S-\<S%S4S1 jrES/\\:   S*\@S-\<S%S4S2 jrFS/\\:   S*\@S-\<S%S4S3 jrGS4\\B   S5\*S6\BS%\@4S7 jrHS8\*S%\I\\:/\I\S94   4   \@4   4S: jrJS(\S;\K\*   S%\,4S< jrL\)R                  5       SS=S\+R                  S=SS4S>\\\*   \R                  " S?S94   S@\\@\R                  " SAS94   SB\\\K\*      \R                  " SCSDSES94   SF\\+\R                  " SGS94   SH\\@\R                  " SISJSKS94   SL\\\8   \R                  " SMS94   SN\\\P   \R                  " SOS94   S%S4SP jj5       rQ\)R                  5          ShS;\\K\*   \R                  " SQS94   S>\\\*   \R                  " S?S94   SR\\@\R                  " SSSTSUS94   SV\\@\R                  " SWS94   S%S4
SX jj5       rS\)R                  5          ShS>\\\*   \R                  " S?S94   SR\\@\R                  " SSSTSUS94   SV\\@\R                  " SWS94   S%S4SY jj5       rT\)R                  5       \$R                  SSSS=S=S4SZ\#S[\$S\\%S>\\\*   \R                  " S]S94   S^\\\*   \R                  " S_S94   S`\\@\R                  " SaSbS94   Sc\\@\R                  " SdSeS94   Sf\&S%S4Sg jj5       rVg)izHContains the 'hf cache' command group with cache management subcommands.    N)defaultdict)	dataclass)Enum)	AnnotatedAnyCallableDictListMappingOptionalTuple   )ANSICachedRepoInfoCachedRevisionInfoCacheNotFoundHFCacheInfo_format_sizescan_cache_dirtabulate)parse_duration
parse_size   )	RepoIdArgRepoTypeOptRevisionOptTokenOpt
get_hf_apityper_factoryzManage local cache directory.)helpc                        \ rS rSrSrSrSrSrg)OutputFormat1   tablejsoncsv N)__name__
__module____qualname____firstlineno__r$   r%   r&   __static_attributes__r'       U/var/www/html/land-ocr/venv/lib/python3.13/site-packages/huggingface_hub/cli/cache.pyr"   r"   1   s    ED
Cr-   r"   T)frozenc                   T    \ rS rSr% \\   \S'   \\\\	   4   \S'   \
\S4   \S'   Srg)_DeletionResolution7   	revisionsselected.missingr'   N)r(   r)   r*   r+   	frozensetstr__annotations__dictr   r   tupler,   r'   r-   r.   r1   r1   7   s0    ~>9-?#@@AA38_r-   r1   zA^(?P<key>[a-zA-Z_]+)\s*(?P<op>==|!=|>=|<=|>|<|=)\s*(?P<value>.+)$>   <=>!=<=>=>   refssizetypeaccessedmodified>   namerB   rD   rE   z.^(?P<key>[a-zA-Z_]+)(?::(?P<order>asc|desc))?$descasc)rD   rE   rB   rF   z:asc_ascz:desc_descSortOptions)rC   modulec                   8    \ rS rSr% Sr\\S'   \\S'   \\S'   Srg)CacheDeletionCountsV   z>Simple counters summarizing cache deletions for CLI messaging.
repo_countpartial_revision_counttotal_revision_countr'   N)r(   r)   r*   r+   __doc__intr8   r,   r'   r-   r.   rN   rN   V   s    HOr-   rN   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lenr3   rN   )rU   rP   total_revisionsrevisions_in_full_reposrepor3   rQ   s          r.   summarize_deletionsr]   c   s|     JO+1133y>)y>S00!OJ#s9~5#	 4 -Fz?SSr-   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  [        SU S35        M^  [        SU S35        U HX  nSR                  [        UR                  5      5      =(       d    S	n[        S
UR                   SU SUR                   35        MZ     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r\   s    r.   <lambda>0print_cache_selected_revisions.<locals>.<lambda>w   s    $..RVR^R^RdRdRfAgr-   key/c                     U R                   $ r`   commit_hashrevs    r.   rf   rg   y       3??r-     - z (entire repo): z
(detached)z      z [z] N)sortedkeysrb   rc   rY   r3   printjoinrA   rm   size_on_disk_str)rU   r\   repo_keyr3   revisionrA   s         r.   print_cache_selected_revisionsr{   u   s    ',,.4ghnn%Qt||n5+17RS	y>S00D
.12XJa !!H88F8==12BlDF8//04&8;T;T:UVW " ir-   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_idrd   r3   rm   )r|   repo_lookuprevision_lookupr\   ry   rz   s         r.   build_cache_indexr      sk     .0KLNO##==&&( $HH=A<LO006689 ' $
 ''r-   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$ r`   ra   re   s    r.   rf   'collect_cache_entries.<locals>.<lambda>   s    QUQ]Q]QcQcQe@fr-   rh   c                     U R                   $ r`   rl   rn   s    r.   rf   r      rp   r-   Nc                 P    U S   R                   U S   b  U S   R                  4$ S4$ )Nr   r    )r   rm   entrys    r.   rf   r      s2    a!!(-a(<a$$BDr-   c                      U S   R                   $ )Nr   )r   r   s    r.   rf   r      s    uQx'8'8r-   )rt   r~   r6   r3   rA   appendsort)r|   r   entriesrepo_refs_mapsorted_reposr\   rz   refs           r.   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;   aD  [        TR                  5       5      m	S[        S[        [           S[        S[        4UUU	4S jjnU$ TS:X  aN  TR                  5       mTS:w  a  [        ST S35      e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[        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'.ri   opvaluezUnsupported operator 'z' in filter ''. Must be one of .zUnsupported filter key '' in 'rB   c                 \   > [        Ub  UR                  TT5      $ U R                  TT5      $ r`   )_compare_numericsize_on_disk)r\   rz   _r   size_thresholds      r.   rf   &compile_cache_filter.<locals>.<lambda>   s3    )9%-%9H!!*
?C?P?P*
r-   >   rD   rE   r\   rz   nowrV   c                    > TS:X  a  U R                   OUb  UR                  OU R                  nUc  g[        X#-
  TT5      $ )NrD   F)last_accessedlast_modifiedr   )r\   rz   r   	timestampri   r   secondss       r.   _time_filter*compile_cache_filter.<locals>._time_filter   sU     *$ "" ' ++''   #CORAAr-   rC   r<   z/Only '=' is supported for 'type' filters. Got 'r   c                 >   > U R                   R                  5       T:H  $ r`   )rb   rd   )r\   rz   r   expecteds      r.   _type_filter*compile_cache_filter.<locals>._type_filter   s    >>'')X55r-   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 r`   )rA   getr6   rd   )r\   rz   r   rA   r   r   	value_raws        r.   _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grouprd   _ALLOWED_OPERATORSlist_FILTER_KEYSr   r   r   r   r   floatbool)r   r   r   r   r   r   r   ri   r   r   r   r   s    `    @@@@@@r.   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BT9U 
	B\a 
	Bfj 
	B 
	B 
f}??$9NrdRTUVV	6~ 	6BT9U 	6Z_ 	6dh 	6  9MbTQRSTT	F~ 	FBT9U 	FZ_ 	Fdh 	F 	F r-   r   c                   / nU  H  u  pEU(       as  Uc  M  UR                   UR                  UR                  [        UR                  5      UR
                  UR                  UR                  [        UR                  5      S.nO\UR                   UR                  UR
                  UR                  UR                  [        UR                  U[        5       5      5      S.nUR                  U5        M     U$ )zGNormalize cache entries into serializable records for JSON/CSV exports.rc   rb   rz   snapshot_pathr   r   r   rA   rc   rb   r   r   r   rA   )rc   rb   rm   r7   r   r   r   r   rt   rA   r   r6   r   )r   r   r   payloadr\   rz   records          r.   _build_cache_export_payloadr      s     %'G!<<!^^$00!$X%;%;!< ( 5 5!%!3!3!)!7!7x}}-	&F  <<!^^ $ 1 1!%!3!3!%!3!3}00y{CDF 	v/ "0 Nr-   c                   U (       d  U(       a  SOSn[        U5        gU(       a~  / SQnU  VVs/ s Hj  u  pVUc  M
  UR                  UR                  UR                  R	                  S5      UR
                  SR                  [        UR                  5      5      /PMl     nnnO/ SQnU  VVs/ s H|  u  pXUR                  UR                  R	                  S5      UR                  =(       d    SUR
                  SR                  [        UR                  U[        5       5      5      5      /PM~     nnn[        [        XtS	95        U  VVs1 s H  u  pXUiM	     n	nn[        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SU
 SU S[        U5       S3n[        [         R"                  " U5      5        gs  snnf s  snnf s  snnf )zBRender cache entries as a table and show a human-readable summary.zNo cached revisions found.zNo cached repositories found.N)IDREVISIONSIZELAST_MODIFIEDREFS   rs   )r   r   LAST_ACCESSEDr   r   r   )headersc              3   4   #    U  H  u  pUc  M
  Sv   M     g 7f)Nr   r'   .0r   rz   s      r.   	<genexpr>,print_cache_entries_table.<locals>.<genexpr>8  s     R';1XQQ's   		c              3   H   #    U  H  u  pUc  M
  UR                   v   M     g 7fr`   r   r   s      r.   r   r   9  s     b';1X...'s   	""c              3   L   #    U  H  n[        UR                  5      v   M     g 7fr`   )rY   r3   r   r\   s     r.   r   r   ;  s     J\TS00\s   "$c              3   8   #    U  H  oR                   v   M     g 7fr`   r   r   s     r.   r   r   <  s     D|t**|   z
Found z repo(s) for a total of z revision(s) and z	 on disk.)rv   r   rm   rx   rjustlast_modified_strrw   rt   rA   last_accessed_strr   r6   r   rY   sumr   r   bold)r   r   r   messager   r\   rz   
table_rowsr   unique_reposrP   revision_count
total_sizesummarys                 r.   print_cache_entries_tabler     s    2C.IhgE #*

 #*$$))//2**./ #* 	 


 K #	
 # %%++A.&&,"&& 1 1$	 DEF # 	 	
 
(:
/0(/0WTDL0\"JR'RRb'bb
J\JJD|DD
$<^<LL]^jku^v]w  xA  BG	$))G
I

	
 1s   	G+A$G+-BG1
G7c                    [        XUS9n[        R                  " U[        R                  SS9  [        R                  R                  S5        g)z7Dump cache entries as JSON for scripting or automation.r   r   r   )indent
N)r   r%   dumpsysstdoutwrite)r   r   r   r   s       r.   print_cache_entries_jsonr   B  s7     *'fstGIIgszz!,JJTr-   c                   [        XUS9n[        R                  " [        R                  5      nU(       a  / SQnO/ SQnUR                  U5        U(       d  gU GH  nUS   nU(       a  UR                  SS5      UR                  SS5      UR                  S	S5      UR                  S
S5      UR                  S5      UR                  S5      UR                  S5      U(       a  SR                  U5      OS/nOmUR                  SS5      UR                  SS5      UR                  S5      UR                  S5      UR                  S5      U(       a  SR                  U5      OS/nUR                  U5        GM!     g)z@Export cache entries as CSV rows with the shared payload format.r   r   r   NrA   rc   r   rb   rz   r   r   r   r   rs   )r   r&   writerr   r   writerowr   rw   )	r   r   r   recordsr   r   r   rA   rows	            r.   print_cache_entries_csvr   K  s3   )'fstGZZ

#F	
 e
OOGf~

9b)

;+

:r*

?B/

>*

?+

?+"&B	C 

9b)

;+

>*

?+

?+"&BC 	- r-   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)r<   r>   r=   r;   r@   r?   z)Unsupported numeric comparison operator: )r   )r   r   r   comparisonss       r.   r   r   |  sT    | ]m\\mmK 
DRDIJJ?r-   	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'.ri   orderzUnsupported sort key 'r   r   r   rG   r   rV   .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)NrF   rB   rD   g        rE   zUnsupported sort key: )r   rd   r   r   r   r   )r   r\   rz   r   ri   s       r.   	_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8r-   )_SORT_PATTERNr   r   rd   r   r   
_SORT_KEYSr   _SORT_DEFAULT_ORDER
CacheEntryr:   r   )r   r   explicit_orderr   reverser   ri   s         @r.   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< r-   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}r3   r4   r5   )r   r   setr   rd   re	fullmatchr   r   addrm   r3   rX   r6   r1   r:   )r|   r  r   r   r4   r3   r5   
raw_targettargetloweredr   r\   rz   matched_reporevsfrozen_selecteds                   r.   _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F	cache_dirz9Cache directory to scan (defaults to Hugging Face cache).r3   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.formatzOutput format.quietz-qz--quietz-Print only IDs (repo IDs or revision hashes).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  nU" 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(       a1  U
 H*  u  nn[        Ub  UR                  OUR                   5        M,     g["        R$                  [&        ["        R(                  [*        ["        R,                  [.        0nUU   " XUS
9$ ! [         a;  n[        S[        UR                  5       35        [
        R                  " SS9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)z&List cached repositories or revisions.Cache directory not found: r   codeN)r   r   )ri   r  z&Limit must be a positive integer, got r   r   )r   r   rv   r7   r  typerExitr   r   r   BadParametertimer  r   r   rm   r   r"   r$   r   r%   r   r&   r   )r  r3   r  r  r  r   r  r|   excfiltersr   r   r   
filter_fnsr   fnr   sort_key_fnr  r\   rz   
formatterss                         r.   lsr%    s   j*&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/%ND((*>(&&DMMR & 	531J
 fgR_``Q  *+C,>+?@Ajja c)* U 4  S*34
 N  	8$$SX.C7	8sb   E F+ F&F+ G:G(G" 
F#(6FF#&F+ +
G5 GG"
H, HHzQOne 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           	          [        U5      n[        X@5      nUR                  (       a,  [        S5        UR                   H  n[        SU 35        M     [        UR                  5      S:X  a  [        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[        SU SUR(                   S35        [+        UR                  5        U(       a  [        S5        gU(       d&  [
        R,                  " SSS9(       d  [        S5        gUR/                  5         [        UR                  5      n	[        SU	R                   SU	R$                   SUR(                   S35        g! [         a:  n[        S[        UR                  5       35        [
        R                  " SS9eSnAff = f)z(Remove cached repositories or revisions.r  r   r  Nz2Could not find the following targets in the cache:rq   r   zNothing to delete.z repo(s)z revision(s)z and About to delete z totalling r   Dry run: no files were deleted.zProceed with deletion?F)defaultzDeletion cancelled.Deleted z repo(s) and z revision(s); freed )r   r   rv   r7   r  r  r  r  r5   rY   r3   delete_revisionsrt   r]   r4   rP   r   rQ   rR   rw   expected_freed_size_strr{   confirmexecute)r  r  r&  r'  r|   r  
resolutionr   strategycountssummary_partssummary_texts               r.   rmr6  T  s   <!&y1
 +=BJBC''ED.! ( : A%"#jja  --vj6J6J/KLH !4!45F!M 1 12(;<$$ = =>lKL ; ;<LIJ<<.L	\N+h6V6V5WWX
YZ":#6#67/0u}}%=uM#$ !4!45F	
6$$%]63N3N2OOcdl  eE  eE  dF  FG  	HQ  !+C,>+?@Ajja  !s   H$ $
I(.5I##I(c                 r    [        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  [        S5        g[        [        U5      US	S
9n	UR                  " [        U	R                  5      6 n
[!        U5      n[        SUR"                   SU
R$                   S35        ['        U5        U(       a  [        S5        gU(       d'  [
        R(                  " S5      (       d  [        S5        gU
R+                  5         [        SUR"                   SU
R$                   S35        g! [         a:  n[        S[        UR                  5       35        [
        R                  " SS9eSnAff = f)z)Remove detached revisions from the cache.r  r   r  Nc              3   \   #    U  H"  n[        UR                  5      S :X  d  M  Uv   M$     g7f)r   N)rY   rA   r   rz   s     r.   r   prune.<locals>.<genexpr>  s#     `n(HMMHZ^_H_XXns   ,	,c              3   8   #    U  H  oR                   v   M     g 7fr`   rl   r9  s     r.   r   r:    s     Gh(--hr   r   z2No unreferenced revisions found. Nothing to prune.r'   r  r)  z unreferenced revision(s) (z total).r*  zProceed?zPruning cancelled.r,  z! unreferenced revision(s); freed r   )r   r   rv   r7   r  r  r  r  r~   r6   r3   updaterY   r1   r-  rt   r]   rR   r.  r{   r/  r0  )r  r&  r'  r|   r  r4   r3   r\   detachedr1  r2  r3  s               r.   pruner>    s   0!&y1
 EGH%I##`dnn``!GhGG $ 9~BC$I&J
 --vj6J6J/KLH *F	
66677RS[SsSsRtt|} #8,/0u}}Z00"#	HV0011RS[SsSsRttu
vwO  !+C,>+?@Ajja  !s   E2 2
F6<5F11F6rc   rb   rz   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                 p   Ub"  Ub  [        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                  5      nU(       aC  [        S	5        U	R                   H&  n[        S
US    SUS    SUS    SUS    35        M(     Sn
U	R                  (       a\  U(       a/  [        S5        U	R                   H  n[        S
U 35        M     Sn
O&[        U	R                  5       S3n[        SU 35        U	R                  (       a\  U(       a/  [        S5        U	R                   H  n[        S
U 35        M     Sn
O&[        U	R                  5       S3n[        SU 35        U	R                  nU
S:w  aK  [        SU  SUR                   SU S35        [        SU	R                   35        [        R                  " U
S9e[        SU	R                   SU  SUR                   SU 35        [        S5        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  )rB  r   )rc   rb   rz   r?  r  rB  r   u;   ❌ Checksum verification failed for the following file(s):rq   pathz: expected r   z (	algorithmz), got actualr   z1Missing files (present remotely, absent locally):zM remote file(s) are missing locally. Use --fail-on-missing-files for details.u   ⚠️  z/Extra files (present locally, absent remotely):zV local file(s) do not exist on the remote repo. Use --fail-on-extra-files for details.u   ❌ Verification failed for 'z' (z) in r   z  Revision: u   ✅ Verified z file(s) for 'z  All checksums match.)rv   r  r  r   verify_repo_checksumshasattrr   r7   r   
mismatchesmissing_pathsrY   extra_pathsverified_pathrz   checked_count)rc   rb   rz   r  r?  r@  rA  rB  apiresult	exit_codehas_mismatchesmpwarningverified_locations                   r.   verifyrV    sH   T !6STjja  
5
!C&&%,Y%@%@)//c)n ' F I&++,NKL""AD6;q}oR+?OwWXYaWbVcde #	 EF))QCj! *I v++,- .; ;  HWI&'CD''QCj! (I v))*+ ,9 9  HWI&',,A~-gYc)//9J%PaObbcdeV__-./jji((	M&../~gYc)//IZZ_`q_r
st	
"#r-   )NFF)WrS   r&   r%   r  r   r  collectionsr   dataclassesr   enumr   typingr   r   r   r	   r
   r   r   r   r  utilsr   r   r   r   r   r   r   r   utils._parsingr   r   
_cli_utilsr   r   r   r   r   r   	cache_clir7   r"   r1   compiler   r   r   r   r   r   _sort_options_dictrt   ri   r(   rK   rN   r   r6   RepoRefsMapr]   r{   r   r   r   r   r   r   r   r   r   r   r:   r  r   r  commandr$   OptionrT   r%  Argumentr6  r>  modelrV  r'   r-   r.   <module>rf     s   O 
  	 
  # !  Q Q Q 	 	 	 8 ` ` >?	3  $   **ab6 ?5


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