§
    «˜ºhÞ!  ã                   ó˜   — d Z ddlZddlmZmZ ddlmZ ddlmZm	Z	m
Z
 ddlmZ dd	lmZmZmZ  G d
„ de¦  «        Zddœde	dedefd„ZdS )zÜContains command to scan the HF cache directory.

Usage:
    huggingface-cli scan-cache
    huggingface-cli scan-cache -v
    huggingface-cli scan-cache -vvv
    huggingface-cli scan-cache --dir ~/.cache/huggingface/hub
é    N)Ú	NamespaceÚ_SubParsersAction)ÚOptionalé   )ÚCacheNotFoundÚHFCacheInfoÚscan_cache_diré   )ÚBaseHuggingfaceCLICommand)ÚANSIÚshow_deprecation_warningÚtabulatec                   óP   — e Zd Zedefd„¦   «         Zdeddfd„Zd„ Zde	ddfd	„Z
dS )
ÚScanCacheCommandÚparserc                 óÚ   — |                       dd¬¦  «        }|                     dt          d d¬¦  «         |                     ddd	d
d¬¦  «         |                     t          ¬¦  «         d S )Nz
scan-cachezScan cache directory.)Úhelpz--dirzMcache directory to scan (optional). Default to the default HuggingFace cache.)ÚtypeÚdefaultr   z-vz	--verboseÚcountr   zshow a more verbose output)Úactionr   r   )Úfunc)Ú
add_parserÚadd_argumentÚstrÚset_defaultsr   )r   Úscan_cache_parsers     úk/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/huggingface_hub/commands/scan_cache.pyÚregister_subcommandz$ScanCacheCommand.register_subcommand"   s“   € à"×-Ò-¨lÐAXÐ-ÑYÔYÐà×&Ò&ØÝØØ`ð	 	'ñ 	
ô 	
ð 	
ð 	×&Ò&ØØØØØ-ð 	'ñ 	
ô 	
ð 	
ð 	×&Ò&Õ,<Ð&Ñ=Ô=Ð=Ð=Ð=ó    ÚargsÚreturnNc                 ó6   — |j         | _        |j        | _        d S ©N)ÚverboseÚ	verbosityÚdirÚ	cache_dir)Úselfr!   s     r   Ú__init__zScanCacheCommand.__init__5   s   € Ø"œlˆŒØ(,¬ˆŒˆˆr    c           
      ó.  — t          dd¦  «         	 t          j        ¦   «         }t          | j        ¦  «        }t          j        ¦   «         }n1# t          $ r$}|j        }t          d|› �¦  «         Y d }~d S d }~ww xY w|                      |¦  «         t          dt          ||z
  d¦  «        › dt          |j	        ¦  «        › dt          j        |j        ¦  «        › d�¦  «         t          |j        ¦  «        d	k    r—d
t          |j        ¦  «        › d�}| j        dk    rNt          t          j        |¦  «        ¦  «         |j        D ]#}t          t          j        |¦  «        ¦  «         Œ$d S t          t          j        |dz   ¦  «        ¦  «         d S d S )Nzhuggingface-cli scan-cachezhf cache scanzCache directory not found: z	
Done in r
   zs. Scanned z repo(s) for a total of ú.r   zGot z warning(s) while scanning.é   z Use -vvv to print details.)r   Útimer	   r(   r   ÚprintÚ_print_hf_cache_info_as_tableÚroundÚlenÚreposr   ÚredÚsize_on_disk_strÚwarningsr&   Úgray)r)   Út0Úhf_cache_infoÚt1Úexcr(   ÚmessageÚwarnings           r   ÚrunzScanCacheCommand.run9   sË  € Ý Ð!=¸ÑOÔOÐOð	Ý”‘”ˆBÝ*¨4¬>Ñ:Ô:ˆMÝ”‘”ˆBˆBøÝð 	ð 	ð 	ØœˆIÝÐ;°	Ð;Ð;Ñ<Ô<Ð<ØˆFˆFˆFˆFˆFøøøøð	øøøð
 	×*Ò*¨=Ñ9Ô9Ð9åðK�˜r B™w¨Ñ*Ô*ð Kð Kµs¸=Ô;NÑ7OÔ7Oð Kð KÝ#œx¨Ô(FÑGÔGðKð Kð Kñ	
ô 	
ð 	
õ ˆ}Ô%Ñ&Ô&¨Ò*Ð*ØU�S Ô!7Ñ8Ô8ÐUÐUÐUˆGØŒ~ Ò"Ð"Ý•d”i Ñ(Ô(Ñ)Ô)Ð)Ø,Ô5ð .ð .�GÝ�$œ) GÑ,Ô,Ñ-Ô-Ð-Ð-ð.ð .õ •d”i Ð*GÑ GÑHÔHÑIÔIÐIÐIÐIð +Ð*s   ’:A Á
A;ÁA6Á6A;r9   c                 óL   — t          t          || j        ¬¦  «        ¦  «         d S )N©r&   )r/   Ú	get_tabler&   )r)   r9   s     r   r0   z.ScanCacheCommand._print_hf_cache_info_as_tableT   s%   € Ý�i˜°´Ð@Ñ@Ô@ÑAÔAÐAÐAÐAr    )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r*   r>   r   r0   © r    r   r   r   !   s˜   € € € € € Øð>Ð$5ð >ð >ð >ñ „\ð>ð$1˜Yð 1¨4ð 1ð 1ð 1ð 1ðJð Jð Jð6B¸;ð BÈ4ð Bð Bð Bð Bð Bð Br    r   r@   r9   r&   r"   c                óÖ   — |dk    r2t          d„ t          | j        d„ ¬¦  «        D ¦   «         g d¢¬¦  «        S t          d„ t          | j        d„ ¬¦  «        D ¦   «         g d	¢¬¦  «        S )
a:  Generate a table from the [`HFCacheInfo`] object.

    Pass `verbosity=0` to get a table with a single row per repo, with columns
    "repo_id", "repo_type", "size_on_disk", "nb_files", "last_accessed", "last_modified", "refs", "local_path".

    Pass `verbosity=1` to get a table with a row per repo and revision (thus multiple rows can appear for a single repo), with columns
    "repo_id", "repo_type", "revision", "size_on_disk", "nb_files", "last_modified", "refs", "local_path".

    Example:
    ```py
    >>> from huggingface_hub.utils import scan_cache_dir
    >>> from huggingface_hub.commands.scan_cache import get_table

    >>> hf_cache_info = scan_cache_dir()
    HFCacheInfo(...)

    >>> print(get_table(hf_cache_info, verbosity=0))
    REPO ID                                             REPO TYPE SIZE ON DISK NB FILES LAST_ACCESSED LAST_MODIFIED REFS LOCAL PATH
    --------------------------------------------------- --------- ------------ -------- ------------- ------------- ---- --------------------------------------------------------------------------------------------------
    roberta-base                                        model             2.7M        5 1 day ago     1 week ago    main C:\Users\admin\.cache\huggingface\hub\models--roberta-base
    suno/bark                                           model             8.8K        1 1 week ago    1 week ago    main C:\Users\admin\.cache\huggingface\hub\models--suno--bark
    t5-base                                             model           893.8M        4 4 days ago    7 months ago  main C:\Users\admin\.cache\huggingface\hub\models--t5-base
    t5-large                                            model             3.0G        4 5 weeks ago   5 months ago  main C:\Users\admin\.cache\huggingface\hub\models--t5-large

    >>> print(get_table(hf_cache_info, verbosity=1))
    REPO ID                                             REPO TYPE REVISION                                 SIZE ON DISK NB FILES LAST_MODIFIED REFS LOCAL PATH
    --------------------------------------------------- --------- ---------------------------------------- ------------ -------- ------------- ---- -----------------------------------------------------------------------------------------------------------------------------------------------------
    roberta-base                                        model     e2da8e2f811d1448a5b465c236feacd80ffbac7b         2.7M        5 1 week ago    main C:\Users\admin\.cache\huggingface\hub\models--roberta-base\snapshots\e2da8e2f811d1448a5b465c236feacd80ffbac7b
    suno/bark                                           model     70a8a7d34168586dc5d028fa9666aceade177992         8.8K        1 1 week ago    main C:\Users\admin\.cache\huggingface\hub\models--suno--bark\snapshots\70a8a7d34168586dc5d028fa9666aceade177992
    t5-base                                             model     a9723ea7f1b39c1eae772870f3b547bf6ef7e6c1       893.8M        4 7 months ago  main C:\Users\admin\.cache\huggingface\hub\models--t5-base\snapshots\a9723ea7f1b39c1eae772870f3b547bf6ef7e6c1
    t5-large                                            model     150ebc2c4b72291e770f58e6057481c8d2ed331a         3.0G        4 5 months ago  main C:\Users\admin\.cache\huggingface\hub\models--t5-large\snapshots\150ebc2c4b72291e770f58e6057481c8d2ed331a                                                 ```
    ```

    Args:
        hf_cache_info ([`HFCacheInfo`]):
            The HFCacheInfo object to print.
        verbosity (`int`, *optional*):
            The verbosity level. Defaults to 0.

    Returns:
        `str`: The table as a string.
    r   c                 óò   — g | ]t}|j         |j        d                      |j        ¦  «        |j        |j        |j        d                     t          |j	        ¦  «        ¦  «        t          |j        ¦  «        g‘ŒuS )ú{:>12}ú, )Úrepo_idÚ	repo_typeÚformatr5   Únb_filesÚlast_accessed_strÚlast_modified_strÚjoinÚsortedÚrefsr   Ú	repo_path)Ú.0Úrepos     r   ú
<listcomp>zget_table.<locals>.<listcomp>…   s   € ð ð ð ð ð ”LØ”NØ—O’O DÔ$9Ñ:Ô:Ø”MØÔ*ØÔ*Ø—I’I�f T¤YÑ/Ô/Ñ0Ô0Ý˜œÑ'Ô'ð	ðð ð r    c                 ó   — | j         S r$   ©rT   ©rV   s    r   ú<lambda>zget_table.<locals>.<lambda>�   ó   € ÈÌ€ r    ©Úkey)úREPO IDú	REPO TYPEúSIZE ON DISKúNB FILESÚLAST_ACCESSEDÚLAST_MODIFIEDÚREFSú
LOCAL PATH)ÚrowsÚheadersc                 ó&  — g | ]Ž}t          |j        d „ ¬¦  «        D ]t}|j        |j        |j        d                     |j        ¦  «        |j        |j        d 	                    t          |j
        ¦  «        ¦  «        t          |j        ¦  «        g‘ŒuŒ�S )c                 ó   — | j         S r$   )Úcommit_hash)Úrevisions    r   r[   z&get_table.<locals>.<listcomp>.<lambda>«   s	   € ÈHÔL`€ r    r]   rI   rJ   )rR   Ú	revisionsrK   rL   rk   rM   r5   rN   rP   rQ   rS   r   Úsnapshot_path)rU   rV   rl   s      r   rW   zget_table.<locals>.<listcomp>Ÿ   s«   € ð ð ð ð Ý & t¤~Ð;`Ð;`Ð aÑ aÔ aðð ð ð ”LØ”NØÔ(Ø—O’O HÔ$=Ñ>Ô>ØÔ%ØÔ.Ø—I’I�f X¤]Ñ3Ô3Ñ4Ô4Ý˜Ô.Ñ/Ô/ð	ðð ð ð r    c                 ó   — | j         S r$   rY   rZ   s    r   r[   zget_table.<locals>.<lambda>ª   r\   r    )r_   r`   ÚREVISIONra   rb   rd   re   rf   )r   rR   r3   )r9   r&   s     r   rA   rA   X   sÀ   € ðV �A‚~€~Ýðð õ # =Ô#6Ð<WÐ<WÐXÑXÔXðñ ô ð	ð 	ð 	ð
ñ 
ô 
ð 	
õ4 ðð õ # =Ô#6Ð<WÐ<WÐXÑXÔXðñ ô ð	ð 	ð 	ð
ñ 
ô 
ð 	
r    )Ú__doc__r.   Úargparser   r   Útypingr   Úutilsr   r   r	   Ú r   Ú
_cli_utilsr   r   r   r   Úintr   rA   rF   r    r   ú<module>rx      s  ððð ð €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð à >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð4Bð 4Bð 4Bð 4Bð 4BÐ0ñ 4Bô 4Bð 4Bðn ?@ð _
ð _
ð _
˜[ð _
¸ð _
ÀCð _
ð _
ð _
ð _
ð _
ð _
r    