+
    QV-jÿh  ã                   óô  € R t ^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIH	t	 ^ RI
Ht ^ RIHtHt ^ RIt^ RIHt ^RIHtHtHtHtHtHtHtHt ^R	IHtHt ^R
IHtH t H!t!H"t"H#t#H$t$ ^RI%H&t& ]$! RR7      t']	! RR7       ! R R4      4       t(]PR                  ! R4      t*0 RAmt+0 RBmt,0 RCmt-]PR                  ! R4      t.RRRRRRRR/t// t0]1! ]-4       F  t2]2]0]2&   ]2 R2]0]2 R2&   ]2 R2]0]2 R2&   K   	  ]! R]0]3]4R7      t5]	! RR7       ! R  R!4      4       t6]7]]R,          3,          t8]9]]:]3,          3,          t;R" R# lt<R$ R% lt=R& R' lt>R( R) lt?R* R+ lt@R, R- ltAR. R/ ltBR0 R1 ltCR2 R3 ltD]'P‹                  R4. RDOR57      RER7 R8 ll4       tF]'P‹                  . RFOR57      RGR9 R: ll4       tG]'P‹                  R;R<.R57      RGR= R> ll4       tH]'P‹                  . RHOR57      ] P’                  RRRR6R6R3R? R@ ll4       tJR# )IzHContains 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Úparse_hf_uriÚscan_cache_dir)Úparse_durationÚ
parse_size)Ú	RepoIdArgÚRepoTypeOptÚRevisionOptÚTokenOptÚ
get_hf_apiÚtyper_factory)ÚoutzManage local cache directory.©ÚhelpT)Úfrozenc                   ó,   a € ] tR t^1t o V 3R ltRtV tR# )Ú_DeletionResolutionc                óˆ   <€ V ^8„  d   Qh/ S[ S[,          ;R&   S[S[S[ S[,          3,          ;R&   S[S[R3,          ;R&   # )é   Ú	revisionsÚselected.Úmissing)Ú	frozensetÚstrÚdictr   r   Útuple)ÚformatÚ__classdict__s   "€Új/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/huggingface_hub/cli/cache.pyÚ__annotate__Ú _DeletionResolution.__annotate__1   sF   ø‡ ‚ á™�~Ññ ñ ‘>¡9Ñ-?Õ#@Ð@ÕAÑAñ ñ ‘3˜�8�_Ñò	 ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r*   s   @r+   r   r   1   s   ø‡ ‡ „ r.   r   zA^(?P<key>[a-zA-Z_]+)\s*(?P<op>==|!=|>=|<=|>|<|=)\s*(?P<value>.+)$ÚaccessedÚmodifiedÚsizeÚnamez.^(?P<key>[a-zA-Z_]+)(?::(?P<order>asc|desc))?$ÚdescÚascz:ascÚ_ascz:descÚ_descÚSortOptions)ÚtypeÚmodulec                   ó0   a € ] tR t^Pt o RtV 3R ltRtV tR# )ÚCacheDeletionCountsz>Simple counters summarizing cache deletions for CLI messaging.c                ó>   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   # )r!   Ú
repo_countÚpartial_revision_countÚtotal_revision_count)Úint)r)   r*   s   "€r+   r,   Ú CacheDeletionCounts.__annotate__P   s+   ø‡ ‚ ñ �Oñ	 ñ
  Ññ ñ Ñò r.   r/   N)r0   r1   r2   r3   Ú__doc__r4   r5   r6   r7   s   @r+   rD   rD   P   s   ø‡ € áH÷ ƒ r.   rD   c                óh   € V ^8„  d   QhR\         \        \        \        ,          3,          R\        /# )r!   Úselected_by_repoÚreturn)r   r   r%   r   rD   )r)   s   "r+   r,   r,   ]   s0   € ÷ Tñ TÜœn¬iÔ8JÕ.KÐKÕLðTäñTr.   c                ó  € ^ p^ p^ pV P                  4        FW  w  rEV\        V4      ,          p\        V4      \        VP                  4      8X  g   K<  V^,          pV\        V4      ,          pKY  	  W#,
          p\        WV4      # )z(Summarize deletions across repositories.)ÚitemsÚlenr"   rD   )rM   rF   Útotal_revisionsÚrevisions_in_full_reposÚrepor"   rG   s   &      r+   Úsummarize_deletionsrU   ]   s|   € ð €JØ€OØÐà+×1Ñ1Ö3‰ˆØœ3˜y›>Õ)ˆÜˆy‹>œS §¡Ó0Ö0Ø˜!�OˆJØ#¤s¨9£~Õ5Ò#ñ	 4ð -ÕFÐÜ˜zÀ?ÓSÐSr.   c                ó`   € V ^8„  d   QhR\         \        \        \        ,          3,          RR/# )r!   rM   rN   N)r   r   r%   r   )r)   s   "r+   r,   r,   o   s/   € ÷ [ñ [´W¼^ÌYÔWiÕMjÐ=jÕ5kð [Ðptñ [r.   c           
     ó0  € \        V P                  4       R R7       Fõ  pVP                   RVP                   2p\        W,          R R7      p\	        V4      \	        VP
                  4      8X  d   \        P                  ! RV R24       Kq  \        P                  ! RV R24       V Fd  pRP                  \        VP                  4      4      ;'       g    R	p\        P                  ! R
VP                   RV RVP                   24       Kf  	  K÷  	  R# )zBPretty-print selected cache revisions during confirmation prompts.c                 óN   € V P                   V P                  P                  4       3# ©N©Ú	repo_typeÚrepo_idÚlower©rT   s   &r+   Ú<lambda>Ú0print_cache_selected_revisions.<locals>.<lambda>q   s   € À$Ç.Á.ÐRV×R^ÑR^×RdÑRdÓRfÑAgr.   ©ÚkeyÚ/c                 ó   € V P                   # rY   ©Úcommit_hash©Úrevs   &r+   r_   r`   s   ó   € À3Ç?Â?r.   ú  - z (entire repo)Ú:Ú z
(detached)z      z [z] N)ÚsortedÚkeysr[   r\   rQ   r"   r   ÚtextÚjoinÚrefsrf   Úsize_on_disk_str)rM   rT   Úrepo_keyr"   Úrevisionrq   s   &     r+   Úprint_cache_selected_revisionsru   o   sá   € äÐ'×,Ñ,Ó.Ñ4g×hˆØ—n‘nÐ% Q t§|¡| nÐ5ˆÜÐ+Õ1Ñ7RÔSˆ	Üˆy‹>œS §¡Ó0Ô0Ü�HŠH�t˜H˜: ^Ð4Ô5Ùä�Š�4˜�z Ð#Ô$Û!ˆHØ—8‘8œF 8§=¡=Ó1Ó2×BÐB°lˆDÜ�HŠH�v˜h×2Ñ2Ð3°2°d°V¸2¸h×>WÑ>WÐ=XÐYÖZó "ó ir.   c          
      ó¸   € V ^8„  d   QhR\         R\        \        \        \        3,          \        \        \        \        \
        3,          3,          3,          /# )r!   Úhf_cache_inforN   )r   r(   r'   r&   r   r   )r)   s   "r+   r,   r,   ~   sK   € ÷ (ñ (Üð(ä
ÜŒŒnÐ	ÕÜŒŒe”NÔ$6Ð6Õ7Ð	7Õ8ð:õñ(r.   c                óÒ   € / p/ pV P                    FQ  pVP                  P                  4       pW1V&   VP                   F   pW53W%P                  P                  4       &   K"  	  KS  	  W3# )zPCreate lookup tables so CLI commands can resolve repo ids and revisions quickly.)ÚreposÚcache_idr]   r"   rf   )rw   Úrepo_lookupÚrevision_lookuprT   rs   rt   s   &     r+   Úbuild_cache_indexr}   ~   sk   € ð .0€KØLN€OØ×#Ô#ˆØ—=‘=×&Ñ&Ó(ˆØ $�HÑØŸœˆHØ=AÐ<LˆO×0Ñ0×6Ñ6Ó8Ó9ó 'ñ $ð
 Ð'Ð'r.   c                ó0   € V ^8„  d   QhR\         R\         /# )r!   ÚtargetrN   )r&   )r)   s   "r+   r,   r,   �   s   € ÷ 
"ñ 
"¤sð 
"¬sñ 
"r.   c                ó  € V P                  R4      '       g   V # \        V 4      pVP                  '       g   \        R4      hVP                  f   VP
                  '       d   \        R4      hVP                   RVP                   2# )zCReturn the cache id matching a repo target passed to `hf cache rm`.zhf://z:Only repository hf:// URIs are supported by `hf cache rm`.zBOnly repo-level hf:// URIs are supported by `hf cache rm` for now.rc   )Ú
startswithr   Úis_repor	   rt   Úpath_in_reporA   Úid)r   Úuris   & r+   Ú_repo_cache_id_from_targetr†   �   sq   € à×Ñ˜W×%Ò%Øˆä
�vÓ
€CØ�;�;ˆ;ÜÐSÓTÐTØ
‡|�|Ò 3×#3×#3Ð#3ÜÐ[Ó\Ð\Ø�h‰hˆZ�q˜Ÿ™˜Ð!Ð!r.   c                ót   € V ^8„  d   QhR\         R\        R\        \        \        ,          \
        3,          /# )r!   rw   Úinclude_revisionsrN   )r   Úboolr(   ÚlistÚ
CacheEntryÚRepoRefsMap)r)   s   "r+   r,   r,   œ   s3   € ÷ "ñ "Üð"Ü6:ð"ä
Œ4”
Õœ[Ð(Õ)ñ"r.   c          	     óÐ  € . p/ p\        V P                  R R7      pV F‹  p\        VP                   UUu0 uF  qfP                   F  qwkK  	  K  	  upp4      W5&   V'       d4   \        VP                  R R7       F  pVP                  WV34       K  	  Kx  VP                  VR34       K�  	  V'       d   VP                  R R7       W#3# VP                  R R7       W#3# u uppi )z;Flatten cache metadata into rows consumed by `hf cache ls`.c                 óN   € V P                   V P                  P                  4       3# rY   rZ   r^   s   &r+   r_   Ú'collect_cache_entries.<locals>.<lambda>¢   s   € ÀÇÁÐQU×Q]ÑQ]×QcÑQcÓQeÑ@fr.   ra   c                 ó   € V P                   # rY   re   rg   s   &r+   r_   r�   ¦   ri   r.   Nc                 ój   € V ^ ,          P                   V ^,          e   V ^,          P                  3# R3# )é    Ú )rz   rf   ©Úentrys   &r+   r_   r�   ¬   s2   € Ø�a•×!Ñ!Ø(-¨a­Ò(<��a•×$Ñ$ñàBDñr.   c                 ó(   € V ^ ,          P                   # )r’   )rz   r”   s   &r+   r_   r�   ²   s   €  u¨Q¥x×'8Ò'8r.   )rm   ry   r%   r"   rq   ÚappendÚsort)rw   rˆ   ÚentriesÚrepo_refs_mapÚsorted_reposrT   rt   Úrefs   &$      r+   Úcollect_cache_entriesr�   œ   sÚ   € ð !#€GØ!#€MÜ˜-×-Ñ-Ñ3fÔg€LÛˆÜ'¸T¿^º^Ô(e¹^°×WdÔWdÐPSªÑWd©¹^Ò(eÓfˆÑßÜ" 4§>¡>Ñ7R×S�Ø—‘ Ð/Ö0ó Tð �N‰N˜D $˜<Ö(ñ ÷ Ø�‰ñð 	ô 	
ð Ð!Ð!ð 	�‰Ñ8ˆÔ9ØÐ!Ð!ùó )fs   ¶C"c          	      ó‚   € V ^8„  d   QhR\         R\        R\        \        \        R,          \
        .\        3,          /# )r!   Úexprrš   rN   N)r&   rŒ   r   r   r   Úfloatr‰   )r)   s   "r+   r,   r,   ¶   s;   € ÷ >ñ >Ü
ð>Ü)ð>äŒ~Ô1°DÕ8¼%Ð@Ä$ÐFÕGñ>r.   c           
     ó  aaaaa	a
a€ \         P                  V P                  4       4      pV'       g   \        RV  R24      hVP	                  R4      P                  4       oVP	                  R4      oVP	                  R4      P                  4       oS\        9  d#   \        RS RV  R\        \        4       R	24      hS\        9  d#   \        R
S RV  R\        \        4       R	24      hSR8X  d   \        S4      o
VV
3R l# SR9   d'   \        SP                  4       4      o	R VVV	3R llpV# SR8X  d2   SP                  4       oSR8w  d   \        RS R24      hR V3R llpV# SR8w  d   \        RS R	24      hR VV3R llpV# )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'.rb   ÚopÚvaluezUnsupported operator 'z' in filter 'ú'. Must be one of Ú.zUnsupported filter key 'ú' in 'r:   c                 ó^   <€ \        Ve   VP                  SS4      # V P                  SS4      # rY   )Ú_compare_numericÚsize_on_disk)rT   rt   Ú_r¢   Úsize_thresholds   &&&€€r+   r_   Ú&compile_cache_filter.<locals>.<lambda>Ê   s3   ø€ Ô)9Ø%-Ò%9ˆH×!Ñ!ØØô*
Ø?C×?PÑ?PØØô*
r.   c                óV   € V ^8„  d   QhR\         R\        R,          R\        R\        /# )r!   rT   rt   NÚnowrN   ©r   r   r    r‰   )r)   s   "r+   r,   Ú*compile_cache_filter.<locals>.__annotate__Ó   s6   € ÷ 
	Bñ 
	Bœ~ð 
	BÔ9KÈdÕ9Rð 
	BÔY^ð 
	BÔcgñ 
	Br.   c                 ó”   <€ SR 8X  d   V P                   MVe   VP                  MV P                  pVf   R# \        W#,
          SS4      # )r8   F)Úlast_accessedÚlast_modifiedr¨   )rT   rt   r®   Ú	timestamprb   r¢   Úsecondss   &&& €€€r+   Ú_time_filterÚ*compile_cache_filter.<locals>._time_filterÓ   sU   ø€ ð ˜*Ô$ð ×"Ò"ð Ò'ð ×+Ò+à×'Ñ'ð ð Ò ÙÜ# C¥O°R¸ÓAÐAr.   rA   Ú=z/Only '=' is supported for 'type' filters. Got 'c                óV   € V ^8„  d   QhR\         R\        R,          R\        R\        /# ©r!   rT   rt   Nrª   rN   r¯   )r)   s   "r+   r,   r°   ç   s0   € ÷ 	6ñ 	6œ~ð 	6Ô9KÈdÕ9Rð 	6ÔW\ð 	6Ôaeñ 	6r.   c                 ó>   <€ V P                   P                  4       S8H  # rY   )r[   r]   )rT   rt   rª   Úexpecteds   &&&€r+   Ú_type_filterÚ*compile_cache_filter.<locals>._type_filterç   s   ø€ Ø—>‘>×'Ñ'Ó)¨XÑ5Ð5r.   z.Only '=' is supported for 'refs' filters. Got c                óV   € V ^8„  d   QhR\         R\        R,          R\        R\        /# rº   r¯   )r)   s   "r+   r,   r°   ð   s6   € ÷ 	Fñ 	Fœ~ð 	FÔ9KÈdÕ9Rð 	FÔW\ð 	FÔaeñ 	Fr.   c                 óÂ   <€ Ve   VP                   MSP                  V \        4       4      pSP                  4       V Uu. uF  qDP                  4       NK  	  up9   # u upi rY   )rq   Úgetr%   r]   )rT   rt   rª   rq   rœ   rš   Ú	value_raws   &&&  €€r+   Ú_refs_filterÚ*compile_cache_filter.<locals>._refs_filterð   sM   ø€ Ø$,Ò$8�8—=’=¸m×>OÑ>OÐPTÔV_ÓVaÓ>bˆDØ—?‘?Ó$ÁÓ(EÁ¸¯©®ÁÑ(EÑEÐEùÒ(Es   ¿A>   r8   r9   )Ú_FILTER_PATTERNÚmatchÚstripÚ
ValueErrorÚgroupr]   Ú_ALLOWED_OPERATORSrŠ   Ú_FILTER_KEYSr   r   )rŸ   rš   rÆ   r¶   r½   rÃ   r¼   rb   r¢   rµ   r«   rÂ   s   &f    @@@@@@r+   Úcompile_cache_filterrÌ   ¶   s–  þ€ ô ×!Ñ! $§*¡*£,Ó/€EßÜÐ7¸°v¸RÐ@ÓAÐAà
�+‰+�eÓ
×
"Ñ
"Ó
$€CØ	�‰�TÓ	€BØ—‘˜GÓ$×*Ñ*Ó,€Ià	Ô#Ô#ÜÐ1°"°°]À4À&ÐHZÔ[_Ô`rÓ[sÐZtÐtuÐvÓwÐwà
”,ÔÜÐ3°C°5¸¸t¸fÐDVÔW[Ô\hÓWiÐVjÐjkÐlÓmÐmà
ˆf„}Ü# IÓ.ˆõ
ð 	
ð Ð&Ô&Ü  §¡Ó!2Ó3ˆ÷
	Bò 
	Bð Ðà
ˆf„}Ø—?‘?Ó$ˆà�Œ9ÜÐNÈrÈdÐRTÐUÓVÐV÷	6ð 	6ð Ðð �Œ9ÜÐMÈbÈTÐQRÐSÓTÐT÷	Fñ 	Fð Ðr.   c                óV   € V ^8„  d   QhR\         R,          R\        R\         R\        /# )r!   ÚleftNr¢   ÚrightrN   )r    r&   r‰   )r)   s   "r+   r,   r,   ÷   s,   € ÷ ñ œ5 4�<ð ¬Sð ¼ð Ä4ñ r.   c                óz   € V f   R# RW8H  RW8g  RW8„  RW8  RW8¬  RW8*  /pW9  d   \        RV 24      hW1,          # )	z)Evaluate numeric comparisons for filters.Fr¸   ú!=Ú>Ú<ú>=ú<=z)Unsupported numeric comparison operator: )rÈ   )rÎ   r¢   rÏ   Úcomparisonss   &&& r+   r¨   r¨   ÷   s`   € à‚|Ùð 	ˆT‰]Øˆd‰mØˆT‰\ØˆT‰\Øˆd‰mØˆd‰mð€Kð 
ÔÜÐDÀRÀDÐIÓJÐJà�?Ðr.   c          	      ó�   € V ^8„  d   QhR\         R\        \        \        .\        \        R3,          3,          \
        3,          /# )r!   Ú	sort_exprrN   .)r&   r(   r   r‹   r   r‰   )r)   s   "r+   r,   r,     s:   € ÷ 3ñ 3¤#ð 3¬%´¼*¸ÄuÌSÐRUÈXÅÐ9VÕ0WÔY]Ð0]Õ*^ñ 3r.   c           
     óž  a€ \         P                  V P                  4       P                  4       4      pV'       g   \	        RV  R24      hVP                  R4      P                  4       oVP                  R4      pS\        9  d#   \	        RS RV  R\        \        4       R24      hV'       d   TM\        S,          pVR	8H  pR
 V3R llpWT3# )zïConvert 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'.rb   ÚorderzUnsupported sort key 'r¦   r¤   r¥   r<   c                óJ   € V ^8„  d   QhR\         R\        \        R3,          /# )r!   r•   rN   .)r‹   r(   r   )r)   s   "r+   r,   Ú(compile_cache_sort.<locals>.__annotate__   s"   € ÷ 9ñ 9œð 9¬¬c°3¨h­ñ 9r.   c                 ó¦  <€ V w  rSR 8X  d   VP                   P                  4       pV3# SR8X  d#   Ve   VP                  pV3# VP                  pV3# SR8X  d#   VP                  e   VP                  pV3# RpV3# SR8X  dC   Ve    VP                  e   VP                  MRpV3# VP                  e   VP                  MRpV3# \        RS 24      h)r;   r:   r8   g        r9   zUnsupported sort key: )rz   r]   r©   r²   r³   rÈ   )r•   rT   rt   r£   rb   s   &   €r+   Ú	_sort_keyÚ%compile_cache_sort.<locals>._sort_key   sü   ø€ Ø‰ˆà�&Œ=àŸ™×,Ñ,Ó.ˆEØ�8ˆOà�&Œ=à-5Ò-A�H×)Ñ)ˆEØ�8ˆOð HL×GXÑGXˆEØ�8ˆOà�*Ôð +/×*<Ñ*<Ò*H�D×&Ñ&ˆEØ�8ˆOð ORˆEØ�8ˆOà�*ÔàÒ#Ø2:×2HÑ2HÒ2T˜×.Ò.ÐZ]�ð �8ˆOð /3×.@Ñ.@Ò.L˜×*Ò*ÐRU�Ø�8ˆOô Ð1°#°Ð7Ó8Ð8r.   )	Ú_SORT_PATTERNrÆ   rÇ   r]   rÈ   rÉ   Ú
_SORT_KEYSrŠ   Ú_SORT_DEFAULT_ORDER)rØ   rÆ   Úexplicit_orderrÚ   ÚreverserÞ   rb   s   &     @r+   Úcompile_cache_sortrå     sÅ   ø€ ô ×Ñ 	§¡Ó 1× 7Ñ 7Ó 9Ó:€EßÜÐ5°i°[Ð@uÐvÓwÐwà
�+‰+�eÓ
×
"Ñ
"Ó
$€CØ—[‘[ Ó)€Nà
”*ÔÜÐ1°#°°f¸Y¸KÐGYÔZ^Ô_iÓZjÐYkÐklÐmÓnÐn÷ -‰NÔ2EÀcÕ2J€EØ�v‰o€G÷9ð 9ð< ÐÐr.   c                óR   € V ^8„  d   QhR\         R\        \        ,          R\        /# )r!   rw   ÚtargetsrN   )r   rŠ   r&   r   )r)   s   "r+   r,   r,   A  s&   € ÷ &ñ &¬[ð &Ä4ÌÅ9ð &ÔQdñ &r.   c                ód  € \        V 4      w  r#\        \        4      p\        4       p. pV EF/  pVP                  4       pV'       g   K  VP	                  4       p	\
        P                  ! RV	4      '       da   VP                  V	4      p
V
f   VP                  V4       Ks  V
w  r¼WK,          P                  V4       VP                  VP                  4       K«  VP                  \        V4      P	                  4       4      pVf   VP                  V4       Kê  VP                   F5  pWM,          P                  V4       VP                  VP                  4       K7  	  EK2  	  VP                  4        UUu/ uF  w  r¾V\        V4      bK  	  ppp\        \        V4      V\!        V4      R7      # u uppi )z8Resolve the deletion targets into a deletion resolution.z[0-9a-fA-F]{40}©r"   r#   r$   )r}   r   ÚsetrÇ   r]   ÚreÚ	fullmatchrÁ   r—   Úaddrf   r†   r"   rP   r%   r   r(   )rw   rç   r{   r|   r#   r"   r$   Ú
raw_targetr   ÚloweredrÆ   rT   rt   Úmatched_repoÚrevsÚfrozen_selecteds   &&              r+   Ú_resolve_deletion_targetsró   A  sf  € ä#4°]Ó#CÑ €Kä>IÌ#Ó>N€HÜ›%€IØ€Gäˆ
Ø×!Ñ!Ó#ˆßÙØ—,‘,“.ˆä�<Š<Ð*¨G×4Ò4Ø#×'Ñ'¨Ó0ˆEØŠ}Ø—‘˜zÔ*ÙØ"‰NˆDØ�N×Ñ˜xÔ(Ø�M‰M˜(×.Ñ.Ô/Ùà"—‘Ô'AÀ&Ó'I×'OÑ'OÓ'QÓRˆØÒØ�N‰N˜:Ô&Ùà$×.Ô.ˆHØÕ"×&Ñ& xÔ0Ø�M‰M˜(×.Ñ.Ö/ô /ñ+ ð2 @H¿~¹~Ô?OÔPÑ?O±°�tœY t›_Ò,Ñ?O€OÑPÜÜ˜IÓ&Ø Ü�g“ôð ùó Qs   Å2F,z	list | ls)ÚexamplesFc                óþ  € V ^8„  d   QhR\         \        R,          \        P                  ! RR7      3,          R\         \        \        P                  ! RR7      3,          R\         \
        \        ,          R,          \        P                  ! RR	R
R7      3,          R\         \        R,          \        P                  ! RR7      3,          R\         \        R,          \        P                  ! RR7      3,          RR/# )r!   Ú	cache_dirNú9Cache directory to scan (defaults to Hugging Face cache).r   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.rN   )r   r&   ÚtyperÚOptionr‰   rŠ   r@   rI   )r)   s   "r+   r,   r,   v  sú   € ÷ |
ñ |
ÜÜˆd�
Ü�ŠØLô	
ð	õð|
ô ÜÜ�ŠØVô	
ð	õð|
ô ÜŒS�	�DÕÜ�ŠØØØmô	
ð	õð|
ô* Ü�dÕÜ�Šð7ô	
ð	õð+|
ô< Üˆd�
Ü�ŠØfô	
ð	õð=|
ðH 
ñI|
r.   c                ój  €  \        V 4      pT;'       g    . p\	        YQR7      w  r‰ T U
u. uF  p
\        Y©4      NK  	  pp
\        P                  ! 4       pT F3  pT Uu. uF$  qí! T^ ,          T^,          T4      '       g   K"  TNK&  	  ppK5  	  T'       d-    \        TP                  4      w  ppTP                  TTR7       Te'   T^ 8  d   \        P                  ! RT R24      hTRT pT'       d®   T UUu. uF€  w  ppTf   K  RTP                  RTP                  R	TP                   R
TP"                  R\        TP$                  4      RTP&                  RTP(                  R\+        TP,                  4      /NK‚  	  ppp\.        P0                  ! T. ROR
RR/R7       M©T UUu. uF}  w  ppRTP                  RTP                  R	TP                   RTP&                  RTP2                  ;'       g    RRTP(                  R\+        T	P5                  T\7        4       4      4      /NK  	  ppp\.        P0                  ! T. RORRR/R7       T'       d²   T UUu0 uF  w  ppTkK
  	  ppp\9        T4      pT'       d&   \;        R T 4       4      p\;        R T 4       4      pM$\;        R T 4       4      p\;        R T 4       4      p\.        P<                  ! \>        P@                  ! RT RT R\C        T4       R24      4       R# R#   \         d   p\        RTP                   24      ThRp?ii ; iu up
i   \         d&   p\        P                  ! \        T4      4      ThRp?ii ; iu upi   \         d&   p\        P                  ! \        T4      4      ThRp?ii ; iu uppi u uppi u uppi )z&List cached repositories or revisions.úCache directory not found: N)rˆ   )rb   rä   z&Limit must be a positive integer, got r¥   r„   r\   r[   rt   Úsnapshot_pathr:   r³   rq   rÏ   )ÚheadersÚid_keyÚ
alignmentsr²   r“   c              3   ó6   "  € T F  w  rVf   K  ^x € K  	  R # 5irY   r/   ©Ú.0rª   rh   s   &  r+   Ú	<genexpr>Úls.<locals>.<genexpr>è  s   é € Ð L±¡v q¸C§¢³ùs   ‚�
c              3   óJ   "  € T F  w  rVf   K  VP                   x € K  	  R # 5irY   ©r©   r  s   &  r+   r  r  é  s   é € ÐW¹G±&°!ÀsÔ-˜S×-Ö-»Gùs   ‚#�#c              3   óL   "  € T F  p\        VP                  4      x € K  	  R # 5irY   )rQ   r"   ©r  rT   s   & r+   r  r  ë  s   é € Ð NÁ¸¤ T§^¡^×!4Ð!4Ãùs   ‚"$c              3   ó8   "  € T F  qP                   x € K  	  R # 5irY   r  r
  s   & r+   r  r  ì  s   é € ÐH¹<°4×.Ö.»<ùó   ‚z
Found z repo(s) for a total of z revision(s) and z	 on disk.)r„   rt   r:   r³   rq   )r„   r:   r²   r³   rq   )"r   r   r	   rö   r�   rÌ   rÈ   rú   ÚBadParameterr&   Útimerå   r£   r˜   rz   r\   r[   rf   rþ   rr   Úlast_modified_strrm   rq   r   ÚtableÚlast_accessed_strrÁ   r%   rQ   Úsumro   r
   Úboldr   )rö   r"   rø   r˜   rù   rw   ÚexcÚfiltersr™   rš   rŸ   Ú
filter_fnsr®   Úfnr•   Úsort_key_fnrä   rT   rt   rP   rª   Úunique_reposrF   Úrevision_countÚ
total_sizes   &&&&&                    r+   Úlsr  m  s‹  € ð^OÜ& yÓ1ˆð �lˆl˜€Gä2°=Ô^Ñ€Gð4ÙLSÓTÉGÀDÔ*¨4Ö?ÉGˆ
ÐTô �)Š)‹+€CÛˆÙ&-ÓM¡g˜U°°E¸!µH¸eÀA½hÈ×1L—5�5¡gˆÐM‰ñ ÷ ð	8Ü#5°d·j±jÓ#AÑ ˆK˜Ø�L‰L˜[°'ˆLÔ:ð
 ÒØ�1Œ9Ü×$Ò$Ð'MÈeÈWÐTUÐ%VÓWÐWØ˜&˜5�/ˆçñ #*ô
ñ #*‘��hØô	Ø�d—m‘mØ˜4Ÿ<™<Ø˜TŸ^™^Ø˜H×0Ñ0Ø¤ X×%;Ñ%;Ó!<Ø˜×1Ñ1Ø ×!;Ñ!;Øœ˜xŸ}™}Ó-ó	ñ #*ð 	ñ 
ô 	�	Š	ØÚGØØ Ð(ö		
ñ" #ô
ñ #‘��að �d—m‘mØ˜4Ÿ<™<Ø˜TŸ^™^Ø˜×-Ñ-Ø ×!7Ñ!7×!=Ð!=¸2Ø ×!7Ñ!7Øœ˜}×0Ñ0°´y³{ÓCÓDóñ #ð 	ñ 
ô 	�	Š	ØÚLØØ Ð(õ		
÷ Ù,3Ô4©G¡  q›©GˆÑ4Ü˜Ó&ˆ
ßÜ Ñ L±Ó LÓLˆNÜÑW¹GÓWÓW‰Jä Ñ NÁÓ NÓNˆNÜÑH¹<ÓHÓHˆJÜ�ŠÜ�IŠIØ˜:˜,Ð&>¸~Ð>Nð OÜ$ ZÓ0Ð1°ð<óö	
ñ øôM ô OÜÐ4°S·]±]°OÐDÓEÈ3ÐNûðOüò UøÜô 4Ü× Ò ¤ S£Ó*°Ð3ûð4üò
 Nøô ô 	8Ü×$Ò$¤S¨£XÓ.°CÐ7ûð	8üó
ùó*
ùó( 5sƒ   ‚L ¨L8 ¬L3Á L8 Á M+ÂM+Â+M0 Ã;	N#Ä	A8N#Æ(AN)Ç47N)ÉN/ÌL0ÌL+Ì+L0Ì3L8 Ì8M(Í M#Í#M(Í0N Í; NÎN c                ó„  € V ^8„  d   QhR\         \        \        ,          \        P                  ! RR7      3,          R\         \        R,          \        P
                  ! RR7      3,          R\         \        \        P
                  ! RR	R
R7      3,          R\         \        \        P
                  ! RR7      3,          RR/# )r!   rç   ziOne or more repo IDs (e.g. model/bert-base-uncased), repo-level hf:// URIs, or revision hashes to delete.r   rö   Nr÷   Úyesú-yú--yesúSkip confirmation prompt.Údry_runú,Preview deletions without removing anything.rN   )r   rŠ   r&   rú   ÚArgumentrû   r‰   )r)   s   "r+   r,   r,   þ  sÁ   € ÷ Oñ OÜÜŒS�	Ü�ŠØ|ô	
ð	õðOô Üˆd�
Ü�ŠØLô	
ð	õðOô 
ÜÜ�ŠØØØ,ô	
ð	õ
ðOô* ÜÜ�ŠØ?ô	
ð	õð+Oð6 
ñ7Or.   c           	     óŽ  €  \        V4      p\	        Y@4      pTP
                  '       d<   RP                  R TP
                   4       4      p\        P                  ! RT 24       \        TP                  4      ^ 8X  d.   \        P                  ! R4       \        P                  ! ^ R7      hTP                  ! \        TP                  4      !  p\!        TP"                  4      p	. p
T	P$                  '       d   T
P'                  T	P$                   R24       T	P(                  '       d   T
P'                  T	P(                   R	24       T
'       g   T
P'                  T	P*                   R	24       R
P                  T
4      p\        P                  ! RT RTP,                   R24       \/        TP"                  4       T'       d<   \        P0                  ! RRT	P$                  T	P*                  TP,                  R7       R# \        P2                  ! RTR7       TP5                  4        \!        TP"                  4      p	\        P0                  ! RT	P$                   RT	P*                   RTP,                   R2T	P$                  T	P*                  TP,                  R7       R#   \         d   p\        RTP                   24      ThRp?ii ; i)z(Remove cached repositories or revisions.rý   NÚ
c              3   ó,   "  € T F
  pR V 2x € K  	  R# 5i©rj   Nr/   )r  r•   s   & r+   r  Úrm.<locals>.<genexpr>#  s   é € ÐKÑ8J¨u˜d 5 '�NÓ8Jùó   ‚zCould not find in cache:
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"  ry   r"   r:   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$   rp   r   ÚwarningrQ   r"   ro   rú   ÚExitÚdelete_revisionsrm   rU   r#   rF   r—   rG   rH   Úexpected_freed_size_strru   ÚresultÚconfirmÚexecute)rç   rö   r  r"  rw   r  Ú
resolutionÚdetailsÚstrategyÚcountsÚsummary_partsÚsummary_texts   &&&&        r+   ÚrmrA  õ  sP  € ðLOÜ& yÓ1ˆô +¨=ÓB€Jà××ÐØ—)‘)ÑK¸
×8JÒ8JÓKÓKˆÜ�ŠÐ0°°	Ð:Ô;ä
ˆ:×ÑÓ  AÔ%Ü�ŠÐ%Ô&Ü�jŠj˜aÔ Ð à×-Ò-¬v°j×6JÑ6JÓ/KÑL€HÜ  ×!4Ñ!4Ó5€Fà!€MØ××ÐØ×Ñ × 1Ñ 1Ð2°(Ð;Ô<Ø×$×$Ð$Ø×Ñ × =Ñ =Ð>¸lÐKÔLßØ×Ñ × ;Ñ ;Ð<¸LÐIÔJà—<‘< Ó.€LÜ‡H‚HÐ ˜~¨[¸×9YÑ9YÐ8ZÐZ[Ð\Ô]Ü" :×#6Ñ#6Ô7çÜ�
Š
Ø-ØØ×#Ñ#Ø×1Ñ1Ø×1Ñ1õ	
ñ 	ä‡K‚KÐ(¨cÕ2à×ÑÔÜ  ×!4Ñ!4Ó5€FÜ‡J‚JØ
�6×$Ñ$Ð% ]°6×3NÑ3NÐ2Oð PØ×2Ñ2Ð3°1ð	6à×'Ñ'Ø ×5Ñ5Ø×.Ñ.÷øôU ô OÜÐ4°S·]±]°OÐDÓEÈ3ÐNûðOús   ‚J ÊKÊ&J?Ê?Kzhf cache prunezhf cache prune --dry-runc                ó  € V ^8„  d   QhR\         \        R,          \        P                  ! RR7      3,          R\         \        \        P                  ! RRRR7      3,          R	\         \        \        P                  ! R
R7      3,          RR/# )r!   rö   Nr÷   r   r  r  r   r!  r"  r#  rN   )r   r&   rú   rû   r‰   )r)   s   "r+   r,   r,   Q  s–   € ÷ Fñ FÜÜˆd�
Ü�ŠØLô	
ð	õðFô 
ÜÜ�ŠØØØ,ô	
ð	õ
ðFô ÜÜ�ŠØ?ô	
ð	õðFð* 
ñ+Fr.   c                óÚ  €  \        V 4      p/ p\	        4       pTP
                   FE  p\        R TP                   4       4      pT'       g   K)  Y…T&   TP                  R T 4       4       KG  	  \        T4      ^ 8X  d   \        P                  ! R4       R# \        \        T4      TRR7      p	TP                  ! \        T	P                  4      !  p
\        T4      p\        P                  ! RTP                    RT
P"                   R	24       \%        T4       T'       d1   \        P&                  ! R
RTP                   T
P"                  R7       R# \        P(                  ! RTR7       T
P+                  4        \        P&                  ! RTP                    RT
P"                   R2TP                   T
P"                  R7       R#   \         d   p\        RTP                   24      ThRp?ii ; i)z)Remove detached revisions from the cache.rý   Nc              3   ó^   "  € T F#  p\        VP                  4      ^ 8X  g   K  Vx € K%  	  R# 5i)r’   N)rQ   rq   ©r  rt   s   & r+   r  Úprune.<locals>.<genexpr>p  s#   é € Ð`±n¨(ÌÈHÏMÉMÓHZÐ^_ÑH_ŸXšX³nùs   ‚-£
-c              3   ó8   "  € T F  qP                   x € K  	  R # 5irY   re   rE  s   & r+   r  rF  t  s   é € ÐG¹h°(×-Ö-»hùr  z2No unreferenced revisions found. Nothing to prune.ré   r-  z unreferenced revision(s) (z total).r.  T)r"  r"   r:   zProceed?r/  r0  z! unreferenced revision(s); freed r¥   )r2  r3  r/   )r   r   r	   rö   rê   ry   r%   r"   ÚupdaterQ   r   ro   r   r6  rm   rU   rH   r7  ru   r8  r9  r:  )rö   r  r"  rw   r  r#   r"   rT   Údetachedr;  r=  r>  s   &&&         r+   ÚprunerJ  P  s²  € ð0OÜ& yÓ1ˆð EG€HÜ›%€IØ×#Ô#ˆÜÑ`°d·n²nÓ`Ó`ˆßÙØ!�‰Ø×ÑÑG¹hÓGÖGñ $ô ˆ9ƒ~˜ÔÜ�ŠÐEÔFÙä$Ü˜IÓ&ØØô€Jð
 ×-Ò-¬v°j×6JÑ6JÓ/KÑL€HÜ  Ó*€Fä‡H‚HØ
˜6×6Ñ6Ð7Ð7RÐS[×SsÑSsÐRtÐt|Ð}ôô # 8Ô,çÜ�
Š
Ø-ØØ×1Ñ1Ø×1Ñ1õ		
ñ 	ä‡K‚K�
 Õ$à×ÑÔÜ‡J‚JØ
�6×.Ñ.Ð/Ð/PÐQY×QqÑQqÐPrÐrsÐtØ ×5Ñ5Ø×.Ñ.÷øôS ô OÜÐ4°S·]±]°OÐDÓEÈ3ÐNûðOús   ‚G ÇG*ÇG%Ç%G*c                ó¬  € V ^8„  d   QhR\         R\        R\        R\        \        R,          \
        P                  ! RR7      3,          R\        \        R,          \
        P                  ! R	R7      3,          R
\        \        \
        P                  ! RRR7      3,          R\        \        \
        P                  ! RRR7      3,          R\        RR/	# )r!   r\   r[   rt   rö   NzXCache directory to use when verifying files from cache (defaults to Hugging Face cache).r   Ú	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.ÚtokenrN   )	r   r   r   r   r&   rú   rû   r‰   r   )r)   s   "r+   r,   r,   ¡  së   € ÷ fñ fÜðfäðfô ðfô Üˆd�
Ü�ŠØkô	
ð	õð	fô Üˆd�
Ü�ŠØRô	
ð	õðfô  %ÜÜ�ŠØ%ØRô	
ð	õð!fô. #ÜÜ�ŠØ#Ø_ô	
ð	õð/fô< ð=fð> 
ñ?fr.   c           
     ó"  € Ve2   Ve.   \         P                  ! R4       \        P                  ! ^R7      h\	        VR7      pTP                  T \        VR4      '       d   VP                  M
\        V4      VVVVR7      p	^ p
V	P                  '       d>   RP                  R V	P                   4       4      p\         P                  ! R	V 24       ^p
V	P                  '       ds   V'       d?   RP                  R
 V	P                   4       4      p\         P                  ! RV 24       ^p
M,\         P                  ! \        V	P                  4       R24       V	P                  '       ds   V'       d?   RP                  R V	P                   4       4      p\         P                  ! RV 24       ^p
M,\         P                  ! \        V	P                  4       R24       V	P                   pV
^ 8w  dN   \         P                  ! RV  RVP                   RV RV	P"                   24       \        P                  ! V
R7      h\         P$                  ! RV	P&                   RVP                   RV  R2V VP                  V	P&                  \        V4      R7       R# )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+  )rO  r£   )r\   r[   rt   rL  rö   rO  r&  c           
   3   óv   "  € T F/  pR VR,           RVR,           RVR,           RVR,           2x € K1  	  R# 5i)	rj   Úpathz: expected r¼   z (Ú	algorithmz), got ÚactualNr/   )r  Úms   & r+   r  Úverify.<locals>.<genexpr>Ü  sE   é € ð 
á&�ð �1�V•9�+˜[¨¨:­¨°r¸!¸K½.Ð9IÈÐQRÐS[ÕQ\ÐP]Õ^Û&ùs   ‚79u<   â�Œ Checksum verification failed for the following file(s):
c              3   ó,   "  € T F
  pR V 2x € K  	  R# 5ir(  r/   ©r  Úps   & r+   r  rV  å  s   é € ÐIÑ4H¨q $ q c¥
Ó4Hùr*  u6   â�Œ Missing files (present remotely, absent locally):
zM remote file(s) are missing locally. Use --fail-on-missing-files for details.c              3   ó,   "  € T F
  pR V 2x € K  	  R# 5ir(  r/   rX  s   & r+   r  rV  ð  s   é € ÐGÑ4F¨q $ q c¥
Ó4Fùr*  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.)r\   r[   ÚcheckedrR  )r   Úerrorrú   r5  r   Úverify_repo_checksumsÚhasattrr£   r&   Ú
mismatchesrp   ro   Úmissing_pathsr4  rQ   Úextra_pathsÚverified_pathrt   r8  Úchecked_count)r\   r[   rt   rö   rL  rM  rN  rO  Úapir8  Ú	exit_coder<  Úverified_locations   &&&&&&&&     r+   Úverifyrg  š  sC  € ð` Ò Ò!6Ü�	Š	ÐWÔXÜ�jŠj˜aÔ Ð ä
˜5Ô
!€Cà×&Ñ&ØÜ%,¨Y¸×%@Ò%@�)—/’/ÄcÈ)ÃnØØØØð 'ó €Fð €Ià××ÐØ—)‘)ñ 
à×&Ò&ó
ó 
ˆô 	�ŠÐPÐQXÐPYÐZÔ[Øˆ	à××Ðß Ø—i‘iÑI°F×4HÒ4HÓIÓIˆGÜ�HŠHÐNÈwÈiÐXÔYØ‰Iä�KŠKÜ�v×+Ñ+Ó,Ð-ð .;ð ;ôð
 ××ÐßØ—i‘iÑG°F×4FÒ4FÓGÓGˆGÜ�HŠHÐLÈWÈIÐVÔWØ‰Iä�KŠKÜ�v×)Ñ)Ó*Ð+ð ,9ð 9ôð
 ×,Ñ,Ðà�A„~Ü�	Š	Ø'¨ y°°I·O±OÐ3DÀEÐJ[ÐI\Ð\kÐlr×l{Ñl{Ðk|Ð}ô	
ô �jŠj˜iÔ(Ð(ä‡J‚JØ
�F×(Ñ(Ð)¨°y·±Ð6GÀrÈ'ÈÐRiÐjØØ—/‘/Ø×$Ñ$ÜÐ"Ó#÷r.   >   rÓ   r¸   rÒ   rÑ   rÕ   rÔ   >   rq   r:   rA   r8   r9   >   r;   r:   r8   r9   )zhf cache lszhf cache ls --revisionsz*hf cache ls --filter "size>1GB" --limit 20zhf cache ls --format json)NFNNN)zhf cache rm model/gpt2z-hf cache rm hf://models/openai-community/gpt2zhf cache rm <revision_hash>z hf cache rm model/gpt2 --dry-runzhf cache rm model/gpt2 --yes)NFF)zhf cache verify gpt2z)hf cache verify gpt2 --revision refs/pr/1z.hf cache verify my-dataset --repo-type dataset)KrK   rë   r  Úcollectionsr   Úcollections.abcr   r   Údataclassesr   Úenumr   Útypingr   r   rú   Úhuggingface_hub.errorsr	   Úutilsr
   r   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_dictrm   rb   r&   r0   r@   rD   r(   r‹   r'   r%   rŒ   rU   ru   r}   r†   r�   rÌ   r¨   rå   ró   Úcommandr  rA  rJ  Úmodelrg  r/   r.   r+   Ú<module>rw     sq  ðñ Oã 	Û Ý #ß -Ý !Ý ß !ã å +÷	÷ 	ó 	÷ 8ß `× `Ý ñ Ð>Ô?€	ñ �$Ô÷ð ó ðð —*’*ÐaÓb€Ú6Ð Ú?€Ú5€
Ø—
’
ÐLÓM€ð �Ø�Ø
ˆFØ
ˆEðÐ ð Ð Ù�*Ö€CØ!Ð�sÑØ*-¨¨d |Ð˜#˜˜d�|Ñ$Ø+.¨%¨u¨Ð˜#˜˜e�}Ó%ñ ñ
 �=Ð"4¸3ÀxÔP€ñ �$Ô÷ð ó ðð �>Ð#5¸Õ#<Ð<Õ=€
Ø�> 9¨S¥>Ð1Õ2€õTõ$[õ(õ"
"õ"õ4>õBõ(3õl&ðX ×ÑØòð ó ö|
óð|
ð~ ×Ñòð ó öOóðOðd ×ÑÐ-Ð/IÐJÐÓKöFó LðFðR ×Ñòð ó ð )×.Ñ.Ø ð 	ð 	ð 	ð 	Øö=fóòfr.   