
    jVf                        d Z ddlZddlZddlmZ ddlmZmZ ddlm	Z	 ddl
mZ ddlmZmZ ddlZddlmZ d	d
lmZmZmZmZmZmZmZ d	dlmZmZ ddlmZmZm Z m!Z!m"Z"m#Z# ddl$m%Z%  e#d          Z& e	d           G d d                      Z' ej(        d          Z)h dZ*h dZ+h dZ, ej(        d          Z-dddddZ.i Z/ e0e,          D ]Z1e1e/e1<   e1 de/e1 d<   e1 de/e1 d <    ed!e/e2e3"          Z4 e	d           G d# d$                      Z5e6eedz  f         Z7e8ee9e2         f         Z:d%eee9e         f         d&e5fd'Z;d%eee9e         f         d&dfd(Z<d)ed&e6e8e2ef         e8e2e6eef         f         f         fd*Z=d)ed+e>d&e6e?e7         e:f         fd,Z@d-e2d.e:d&eeedz  eAge>f         fd/ZBd0eAdz  d1e2d2eAd&e>fd3ZCd4e2d&e6ee7ge6ed5f         f         e>f         fd6ZDd)ed7e?e2         d&e'fd8ZEe&F                    d9g d:;          	 	 	 	 	 ded=ee2dz   ejG        d>          f         d?ee> ejG        d@          f         dAee?e2         dz   ejG        dBdCdD          f         dEee4dz   ejG        dF          f         dGeeHdz   ejG        dH          f         d&dfdI            ZIe&F                    g dJ;          	 	 	 dfd7ee?e2          ejJ        dK          f         d=ee2dz   ejG        d>          f         dLee> ejG        dMdNdO          f         dPee> ejG        dQ          f         d&df
dR            ZKe&F                    dSdTg;          	 	 	 dfd=ee2dz   ejG        d>          f         dLee> ejG        dMdNdO          f         dPee> ejG        dQ          f         d&dfdU            ZLe&F                    g dV;          ejM        dddd<d<dfdWedXedYe d=ee2dz   ejG        dZ          f         d[ee2dz   ejG        d\          f         d]ee> ejG        d^d_          f         d`ee> ejG        dadb          f         dce!d&dfdd            ZNdS )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                   f    e Zd ZU ee         ed<   eeee         f         ed<   e	edf         ed<   dS )_DeletionResolution	revisionsselected.missingN)
__name__
__module____qualname__	frozensetstr__annotations__dictr   r   tuple     \/var/www/html/Carbon-Document/venv/lib/python3.11/site-packages/huggingface_hub/cli/cache.pyr    r    (   sR         ~>9-?#@@AAAA38_r-   r    zA^(?P<key>[a-zA-Z_]+)\s*(?P<op>==|!=|>=|<=|>|<|=)\s*(?P<value>.+)$>   <=>!=<=>=>   refssizetypeaccessedmodified>   namer6   r8   r9   z.^(?P<key>[a-zA-Z_]+)(?::(?P<order>asc|desc))?$descasc)r8   r9   r6   r:   z:asc_ascz:desc_descSortOptions)r7   modulec                   2    e Zd ZU dZeed<   eed<   eed<   dS )CacheDeletionCountsz>Simple counters summarizing cache deletions for CLI messaging.
repo_countpartial_revision_counttotal_revision_countN)r$   r%   r&   __doc__intr)   r,   r-   r.   rB   rB   G   s9         HHOOOr-   rB   selected_by_reporeturnc                 
   d}d}d}|                                  D ]S\  }}|t          |          z  }t          |          t          |j                  k    r|dz  }|t          |          z  }T||z
  }t          |||          S )z(Summarize deletions across repositories.r   r   )itemslenr!   rB   )rH   rC   total_revisionsrevisions_in_full_reposrepor!   rD   s          r.   summarize_deletionsrP   T   s     JO+1133 6 6i3y>>)y>>S0000!OJ#s9~~5#,/FFz+A?SSSr-   c           
         t          |                                 d           D ]}|j         d|j         }t          | |         d           }t	          |          t	          |j                  k    rt          j        d| d           it          j        d| d           |D ]R}d                    t          |j	                            pd	}t          j        d
|j
         d| d|j                    SdS )zBPretty-print selected cache revisions during confirmation prompts.c                 B    | j         | j                                        fS N	repo_typerepo_idlowerrO   s    r.   <lambda>z0print_cache_selected_revisions.<locals>.<lambda>h   s    $.RVR^RdRdRfRfAg r-   key/c                     | j         S rS   commit_hashrevs    r.   rY   z0print_cache_selected_revisions.<locals>.<lambda>j       3? r-     - z (entire repo): z
(detached)z      z [z] N)sortedkeysrU   rV   rL   r!   r   textjoinr5   r_   size_on_disk_str)rH   rO   repo_keyr!   revisionr5   s         r.   print_cache_selected_revisionsrm   f   s/   ',,..4g4ghhh 
[ 
[n55t|55+D17R7RSSS	y>>S0000H4H444555####$$$! 	[ 	[H88F8=1122BlDHYh2YYdYYh>WYYZZZZ	[
[ 
[r-   hf_cache_infoc                     i }i }| j         D ]H}|j                                        }|||<   |j        D ] }||f||j                                        <   !I||fS )zPCreate lookup tables so CLI commands can resolve repo ids and revisions quickly.)reposcache_idrW   r!   r_   )rn   repo_lookuprevision_lookuprO   rk   rl   s         r.   build_cache_indexrt   u   s     .0KLNO# M M=&&(( $H 	M 	MH=A8<LOH0668899	M''r-   include_revisionsc                   g }i }t          | j        d           }|D ]n}t          d |j        D                       ||<   |r2t          |j        d           D ]}|                    ||f           W|                    |df           o|r|                    d            n|                    d            ||fS )z;Flatten cache metadata into rows consumed by `hf cache ls`.c                 B    | j         | j                                        fS rS   rT   rX   s    r.   rY   z'collect_cache_entries.<locals>.<lambda>   s    QUQ]QcQcQeQe@f r-   rZ   c                 &    h | ]}|j         D ]}|S r,   )r5   ).0rl   refs      r.   	<setcomp>z(collect_cache_entries.<locals>.<setcomp>   s*    (e(e(eW_Wd(e(ePS(e(e(e(er-   c                     | j         S rS   r^   r`   s    r.   rY   z'collect_cache_entries.<locals>.<lambda>   rb   r-   Nc                 J    | d         j         | d         | d         j        ndfS )Nr   r    )rq   r_   entrys    r.   rY   z'collect_cache_entries.<locals>.<lambda>   s+    a!(-a(<a$$" r-   c                     | d         j         S )Nr   )rq   r   s    r.   rY   z'collect_cache_entries.<locals>.<lambda>   s    uQx'8 r-   )rf   rp   r'   r!   appendsort)rn   ru   entriesrepo_refs_mapsorted_reposrO   rl   s          r.   collect_cache_entriesr      s    !#G!#M--3f3fgggL ) )'(e(eT^(e(e(effd 	)"4>7R7RSSS 1 1h/00001 NND$<(((( :  	 	
 	
 	
 	
 	88999M!!r-   exprr   c           
      0  	
 t                               |                                           }|st          d|  d          |                    d                                          |                    d          |                    d                                          t          vr+t          d d|  dt          t                     d	          t          vr+t          d
 d|  dt          t                     d	          dk    rt                    

fdS dv rJt                                                    	dt          dt          dz  dt          dt          f	fd}|S dk    rT                                dk    rt          d d          dt          dt          dz  dt          dt          ffd}|S dk    rt          d d	          dt          dt          dz  dt          dt          ffd}|S )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 'r6   c                 B    t          ||j        n| j                  S rS   )_compare_numericsize_on_disk)rO   rl   _r   size_thresholds      r.   rY   z&compile_cache_filter.<locals>.<lambda>   s+    )9%-%9H!!t?P*
 *
 r-   >   r8   r9   rO   rl   NnowrI   c                 n    dk    r| j         n||j        n| j        }|dS t          ||z
            S )Nr8   F)last_accessedlast_modifiedr   )rO   rl   r   	timestampr[   r   secondss       r.   _time_filterz*compile_cache_filter.<locals>._time_filter   s\     *$$ "" ' ++'   u#C)ORAAAr-   r7   r0   z/Only '=' is supported for 'type' filters. Got 'r   c                 >    | j                                         k    S rS   )rU   rW   )rO   rl   r   expecteds      r.   _type_filterz*compile_cache_filter.<locals>._type_filter   s    >''))X55r-   z.Only '=' is supported for 'refs' filters. Got c                     ||j         n!                    | t                                }                                d |D             v S )Nc                 6    g | ]}|                                 S r,   )rW   )ry   rz   s     r.   
<listcomp>z>compile_cache_filter.<locals>._refs_filter.<locals>.<listcomp>   s     (E(E(E(E(E(Er-   )r5   getr'   rW   )rO   rl   r   r5   r   	value_raws       r.   _refs_filterz*compile_cache_filter.<locals>._refs_filter   sO    $,$88==m>O>OPTV_VaVa>b>bD??$$(E(E(E(E(EEEr-   )_FILTER_PATTERNmatchstrip
ValueErrorgrouprW   _ALLOWED_OPERATORSlist_FILTER_KEYSr   r   r   r   floatbool)r   r   r   r   r   r   r   r[   r   r   r   r   s    `    @@@@@@r.   compile_cache_filterr      s    !!$**,,//E B@@@@AAA
++e


"
"
$
$C	T		BG$$**,,I	###v"vv4vv[_`r[s[svvvwww
,lClltllW[\hWiWilllmmm
f}}#I..
 
 
 
 
 	
 &&& !2!233
	B~ 
	B9Kd9R 
	BY^ 
	Bcg 
	B 
	B 
	B 
	B 
	B 
	B 
	B 
	B 
f}}??$$99UrUUUVVV	6~ 	69Kd9R 	6W\ 	6ae 	6 	6 	6 	6 	6 	6  99SbSSSTTT	F~ 	F9Kd9R 	FW\ 	Fae 	F 	F 	F 	F 	F 	F 	F r-   leftr   rightc                     | dS | |k    | |k    | |k    | |k     | |k    | |k    d}||vrt          d|           ||         S )z)Evaluate numeric comparisons for filters.NF)r0   r2   r1   r/   r4   r3   z)Unsupported numeric comparison operator: )r   )r   r   r   comparisonss       r.   r   r      sr    |u U]emE\E\emem K 
IRIIJJJr?r-   	sort_expr.c           
         t                               |                                                                           }|st	          d|  d          |                    d                                          |                    d          }t          vr+t	          d d|  dt          t                     d          |r|nt                   }|d	k    }d
t          dt          t          df         ffd}||fS )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   rI   .c                 2   | \  }}dk    r|j                                         }|fS dk    r||j        n|j        }|fS dk    r|j        |j        nd}|fS dk    r&||j        |j        nd}n|j        |j        nd}|fS t          d           )Nr:   r6   r8   g        r9   zUnsupported sort key: )rq   rW   r   r   r   r   )r   rO   rl   r   r[   s       r.   	_sort_keyz%compile_cache_sort.<locals>._sort_key
  s    h&==,,..E8O&==-5-AH))tGXE8O* +/*<*HD&&cE8O*#2:2H2T..Z].2.@.L**RU8O 7#77888r-   )_SORT_PATTERNr   r   rW   r   r   
_SORT_KEYSr   _SORT_DEFAULT_ORDER
CacheEntryr+   r	   )r   r   explicit_orderr   reverser   r[   s         @r.   compile_cache_sortr      s    	 1 1 7 7 9 9::E xvivvvwww
++e


"
"
$
$C[[))N
*m#mmYmmZ^_iZjZjmmmnnn -JNN2Ec2JEvoG9 9c3h 9 9 9 9 9 9< gr-   targetsc                 8   t          |           \  }}t          t                    }t                      }g }|D ]}|                                }|s|                                }	t          j        d|	          rh|                    |	          }
|
|                    |           p|
\  }}||         	                    |           |	                    |j
                   |                    |	          }||                    |           |j        D ]7}||         	                    |           |	                    |j
                   8d |                                D             }t          t          |          |t          |                    S )z8Resolve the deletion targets into a deletion resolution.z[0-9a-fA-F]{40}Nc                 4    i | ]\  }}|t          |          S r,   )r'   )ry   rO   revss      r.   
<dictcomp>z-_resolve_deletion_targets.<locals>.<dictcomp>L  s$    PPPttYt__PPPr-   r!   r"   r#   )rt   r   setr   rW   re	fullmatchr   r   addr_   r!   rK   r    r'   r+   )rn   r   rr   rs   r"   r!   r#   
raw_targettargetloweredr   rO   rl   matched_repofrozen_selecteds                  r.   _resolve_deletion_targetsr   +  s   #4]#C#C K>I#>N>NH%%IG 0 0
!!## 	,,..<*G44 	#''00E}z***"ND(TNx(((MM(.///"w//NN:&&&$. 	0 	0H\"&&x000MM(.////	0 QPx~~?O?OPPPOI&& g   r-   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                    	 t          |           }n*# t          $ r}t          d|j                   |d}~ww xY w|pg }t	          ||          \  }	 fd|D             }	n4# t
          $ r'}t          j        t          |                    |d}~ww xY wt          j	                    |	D ]fd|D             }|rd	 t          |j                  \  }
}|                    |
|           n4# t
          $ r'}t          j        t          |                    |d}~ww xY w|(|dk     rt          j        d| d	          |d|         }|r)d
 |D             }t          j        |g ddddi           n*fd|D             }t          j        |g ddddi           |rd |D             }t          |          }|r3t!          d |D                       }t!          d |D                       }n2t!          d |D                       }t!          d |D                       }t          j        t%          j        d| d| dt)          |           d                     dS dS )z&List cached repositories or revisions.Cache directory not found: N)ru   c                 0    g | ]}t          |          S r,   )r   )ry   r   r   s     r.   r   zls.<locals>.<listcomp>  s$    TTTD*4??TTTr-   c                 F    g | ]} |d          |d                   |S )r   r   r,   )ry   r   fnr   s     r.   r   zls.<locals>.<listcomp>  s4    MMMUE!HeAh1L1LM5MMMr-   )r[   r   r   z&Limit must be a positive integer, got r   c                     g | ]T\  }}||j         |j        |j        |j        t	          |j                  |j        |j        t          |j	                  dUS )N)idrV   rU   rl   snapshot_pathr6   r   r5   )
rq   rV   rU   r_   r(   r   rj   last_modified_strrf   r5   )ry   rO   rl   s      r.   r   zls.<locals>.<listcomp>  ss     
 
 
 h# m<!^$0!$X%;!<!< 1!)!;x}--	 	 $##r-   )r   rl   r6   r   r5   rl   r6   r   )headersid_key
alignmentsc                     g | ]\\  }}|j         |j        |j        |j        |j        pd |j        t                              |t                                          d]S )r~   )r   rV   rU   r6   r   r   r5   )	rq   rV   rU   rj   last_accessed_strr   rf   r   r'   )ry   rO   r   r   s      r.   r   zls.<locals>.<listcomp>  s{     
 
 
 a m<!^-!%!7!=2!%!7}00y{{CCDD 
 
 
r-   )r   r6   r   r   r5   r   c                     h | ]\  }}|S r,   r,   )ry   rO   r   s      r.   r{   zls.<locals>.<setcomp>  s    444q444r-   c              3   $   K   | ]\  }}|dV  d S )Nr   r,   ry   r   ra   s      r.   	<genexpr>zls.<locals>.<genexpr>  s&       L Lvq#COOOOO L Lr-   c              3   .   K   | ]\  }}||j         V  d S rS   r   r   s      r.   r   zls.<locals>.<genexpr>  s)      WW&!SsS-WWr-   c              3   >   K   | ]}t          |j                  V  d S rS   )rL   r!   ry   rO   s     r.   r   zls.<locals>.<genexpr>  s,       N NT^!4!4 N N N N N Nr-   c              3   $   K   | ]}|j         V  d S rS   r   r   s     r.   r   zls.<locals>.<genexpr>  s%      HH4T.HHHHHHr-   z
Found z repo(s) for a total of z revision(s) and z	 on disk.)r   r   r
   r   r   r   typerBadParameterr(   timer   r   r   r   tablerL   sumrh   r   boldr   )r   r!   r   r   r   rn   excfiltersr   
filter_fnssort_key_fnr   rK   unique_reposrC   revision_count
total_sizer   r   r   s                    @@@r.   lsr   W  s   ^O&y11 O O ODS]DDEE3NO lG2=T]^^^G]4TTTTGTTT

 4 4 4 S**34 )++C N NMMMMMgMMM  8	8#5dj#A#A KLL['L:::: 	8 	8 	8$SXX..C7	8 199$%Ve%V%V%VWWW&5&/ '

 
 #*
 
 
 		GGG(		
 	
 	
 	
 	

 
 
 
 #
 
 
 		LLL(		
 	
 	
 	
  
44G444&&
 	I  L L L L LLLNWWGWWWWWJJ  N N N N NNNNHH<HHHHHJI<: < <~ < <$Z00< < < 	
 	
 	
 	
 	

 
s@    
<7<A' '
B1"BB.C4 4
D%>"D  D%)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           	         	 t          |          }n*# t          $ r}t          d|j                   |d}~ww xY wt	          ||           }|j        r;d                    d |j        D                       }t          j        d|            t          |j
                  dk    r)t          j        d           t          j        d           |j        t          |j
                   }t!          |j                  }	g }
|	j        r|
                    |	j         d	           |	j        r|
                    |	j         d
           |
s|
                    |	j         d
           d                    |
          }t          j        d| d|j         d           t/          |j                   |r*t          j        dd|	j        |	j        |j                   dS t          j        d|           |                                 t!          |j                  }	t          j        d|	j         d|	j         d|j         d|	j        |	j        |j                   dS )z(Remove cached repositories or revisions.r   N
c              3       K   | ]	}d | V  
dS rc   Nr,   )ry   r   s     r.   r   zrm.<locals>.<genexpr>  s(      KKuN5NNKKKKKKr-   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   rp   r!   r6   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#   ri   r   warningrL   r!   rh   r   Exitdelete_revisionsrf   rP   r"   rC   r   rD   rE   expected_freed_size_strrm   resultconfirmexecute)r   r   r   r   rn   r   
resolutiondetailsstrategycountssummary_partssummary_texts               r.   rmr    s   JO&y11 O O ODS]DDEE3NO +='BBJ <))KK
8JKKKKK:::;;;
:  A%%%&&&ja    -}-vj6J/K/KLH !455F!M = 1;;;<<<$ M =KKKLLL K ;IIIJJJ<<..LH\\\9Y\\\]]]":#6777 
-#11	
 	
 	
 	
 	K(c2222 !455FJ	66$ 	6 	663N 	6 	62	6 	6 	6' 5.         
949zhf cache prunezhf cache prune --dry-runc                    	 t          |           }n*# t          $ r}t          d|j                   |d}~ww xY wi }t	                      }|j        D ]G}t          d |j        D                       }|s#|||<   |                    d |D                        Ht          |          dk    rt          j        d           dS t          t          |          |d          }	 |j        t          |	j                   }
t          |          }t          j        d	|j         d
|
j         d           t%          |           |r$t          j        dd|j        |
j                   dS t          j        d|           |
                                 t          j        d|j         d|
j         d|j        |
j                   dS )z)Remove detached revisions from the cache.r   Nc              3   J   K   | ]}t          |j                  d k    |V  dS )r   N)rL   r5   ry   rl   s     r.   r   zprune.<locals>.<genexpr>Y  s7      ``(HMHZHZ^_H_H_XH_H_H_H_``r-   c              3   $   K   | ]}|j         V  d S rS   r^   r  s     r.   r   zprune.<locals>.<genexpr>]  s%      GG(-GGGGGGr-   r   z2No unreferenced revisions found. Nothing to prune.r,   r   r   z unreferenced revision(s) (z total).r  T)r   r!   r6   zProceed?r  r  z! unreferenced revision(s); freed r   )r  r  )r   r   r
   r   r   rp   r'   r!   updaterL   r   rh   r    r	  rf   rP   rE   r
  rm   r  r  r  )r   r   r   rn   r   r"   r!   rO   detachedr  r  r  s               r.   pruner  9  s6   0O&y11 O O ODS]DDEE3NO EGH%%I# H H``dn````` 	!GGhGGGGGGG
9~~EFFF$I&&  J
 .}-vj6J/K/KLH **FH}66}}S[Ss}}}   #8,,, 
-11		
 	
 	
 	
 	K
$$$$Jt6.ttQYQqttt 5.     r  )zhf cache verify gpt2z)hf cache verify gpt2 --revision refs/pr/1z.hf cache verify my-dataset --repo-type datasetrV   rU   rl   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           
      j   |+|)t          j        d           t          j        d          t	          |          }|                    | t          |d          r|j        nt          |          ||||          }	d}
|	j	        r=d	
                    d
 |	j	        D                       }t          j        d|            d}
|	j        ri|r>d	
                    d |	j        D                       }t          j        d|            d}
n)t          j        t          |	j                   d           |	j        ri|r>d	
                    d |	j        D                       }t          j        d|            d}
n)t          j        t          |	j                   d           |	j        }|
dk    r?t          j        d|  d|j         d| d|	j                    t          j        |
          t          j        d|	j         d|j         d|  d| |j        |	j        t          |                     dS )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   )rV   rU   rl   r  r   r   r   r   c           
   3   b   K   | ]*}d |d          d|d          d|d          d|d          V  +dS )	rc   pathz: expected r   z (	algorithmz), got actualNr,   )ry   ms     r.   r   zverify.<locals>.<genexpr>  sj       
 
 _1V9^^:^^!K.^^QRS[Q\^^
 
 
 
 
 
r-   u<   ❌ Checksum verification failed for the following file(s):
r   c              3       K   | ]	}d | V  
dS r   r,   ry   ps     r.   r   zverify.<locals>.<genexpr>  s(      IIq
q

IIIIIIr-   u6   ❌ Missing files (present remotely, absent locally):
zM remote file(s) are missing locally. Use --fail-on-missing-files for details.c              3       K   | ]	}d | V  
dS r   r,   r(  s     r.   r   zverify.<locals>.<genexpr>  s(      GGq
q

GGGGGGr-   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.)rV   rU   checkedr#  )r   errorr   r  r   verify_repo_checksumshasattrr   r(   
mismatchesri   rh   missing_pathsr  rL   extra_pathsverified_pathrl   r  checked_count)rV   rU   rl   r   r  r  r  r   apir  	exit_coder  verified_locations                r.   verifyr7    s   ` !6	WXXXja    
5
!
!
!C&&%,Y%@%@T)//c)nn '  F I )) 
 
&
 
 
 
 
 	ZQXZZ[[[	 	  	iiIIF4HIIIIIGHXwXXYYYIIKv+,, ; ; ;  
  	 	iiGGF4FGGGGGGHVWVVWWWIIKv)** 9 9 9  
 ,A~~	}}}IO}}J[}}lrl{}}	
 	
 	
 ji((((JjF(jjyjj'jjj/$"##     r-   )NFNNN)NFF)OrF   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_dictrf   r[   r(   r$   r?   rB   r+   r   r*   r'   RepoRefsMaprP   rm   rt   r   r   r   r   r   r   r   r   commandOptionrG   r   Argumentr  r  modelr7  r,   r-   r.   <module>rJ     s	   O N 				  # # # # # # - - - - - - - - ! ! ! ! ! !       ! ! ! ! ! ! ! !  + + + + + + v v v v v v v v v v v v v v v v v v 7 7 7 7 7 7 7 7 ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `       M>???	 $        "*abb666 ???555

LMM     6* 6 6C!s*-|||#|||$+.#}}}%%d="43xPPP $        >#5#<<=
>9S>12Tni8J.KKLTT T 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 3 3 3l&[ &49 &Qd & & & &X       	 	 	 	 	G|
 |
d
L	
 	
 	
	|
 V	
 	
 	
	|
 S	Dm	
 	
 	
	|
* d7	
 	
 	
	+|
< d
f	
 	
 	
	=|
H 
I|
 |
 |
 |
~      ( 	 	 	5O OS	d	
 	
 	
	O d
L	
 	
 	
	O 
,	
 	
 	
	
O* ?	
 	
 	
	+O6 
7O O O Od -/IJKK 	 	 	)F Fd
L	
 	
 	
	F 
,	
 	
 	
	
F ?	
 	
 	
	F* 
+F F F LKFR       ).  	 	 	 	=f fff f d
k	
 	
 	
		f d
R	
 	
 	
	f  %%R	
 	
 	
	!f. ##_	
 	
 	
	/f< =f> 
?f f f f f fr-   