§
    ìXÊj>\  ã            $       ó&  — d Z ddlmZmZ ddlmZ ddlZddlmZ ddl	m
Z
mZmZmZmZ ddlmZ d	d
lmZmZmZmZ d	dlmZ d	dlmZmZ d	dlmZmZ d	dlmZm Z   ej!        e"¦  «        Z# ed¬¦  «        Z$e$ %                    dg d¢¬¦  «        	 	 	 	 dˆdee& ed¬¦  «        f         dee' edd¬¦  «        f         deedz   edd¬¦  «        f         dee' edd¬¦  «        f         d ed!dfd"„¦   «         Z(d#e&d!e'fd$„Z)e$ %                    d%g d&¢¬¦  «        	 	 	 	 	 	 d‰d#ee&dz   ed'¬¦  «        f         d(ee' ed)d*d+¬¦  «        f         d,ee' ed-d.¬¦  «        f         d/ee' ed0d1d2¬¦  «        f         d3ed ed!dfd4„¦   «         Z*d5e&dz  d3e&dz  d(e'd,e'd/e'd e&dz  d!dfd6„Z+d7eeez           d8e&d!eeez           fd9„Z,d#e&d(e'd,e'd/e'd e&dz  d!dfd:„Z-e$ %                    d;d<d=g¬¦  «        	 dŠdee& ed>¬¦  «        f         d ed!dfd?„¦   «         Z.e$ %                    d@g dA¢¬¦  «        	 	 	 d‹dee& ed>¬¦  «        f         dBee' edCdDdE¬¦  «        f         dFee' edGdH¬¦  «        f         d ed!df
dI„¦   «         Z/e$ %                    dJg dK¢¬¦  «        	 	 	 	 	 	 dŒd#ee& edL¬¦  «        f         d/ee' ed0d1dM¬¦  «        f         dBee' edCdDdE¬¦  «        f         dNee' edOdP¬¦  «        f         dQee0e&         dz   edR¬¦  «        f         dSee0e&         dz   edT¬¦  «        f         d ed!dfdU„¦   «         Z1e$ %                    dVg dW¢¬¦  «        	 dŠdXee& edY¬¦  «        f         dZee& ed[¬¦  «        f         d ed!dfd\„¦   «         Z2e$ %                    d]g d^¢¬¦  «        	 	 	 d‹dee& ed>¬¦  «        f         dee' edd_¬¦  «        f         d`ee' edadb¬¦  «        f         d ed!df
dc„¦   «         Z3e$ %                    ddg de¢¬¦  «        	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d�dfee&dz   edg¬¦  «        f         dhee&dz   edi¬¦  «        f         d@ee' edj¬¦  «        f         dkee' edldm¬¦  «        f         dnee' edodp¬¦  «        f         dqee&dz   edr¬¦  «        f         dsee&dz   edt¬¦  «        f         dNee' edOdu¬¦  «        f         dQee0e&         dz   edv¬¦  «        f         dSee0e&         dz   edw¬¦  «        f         dxee&dz   edy¬¦  «        f         dzee' ed{d|¬¦  «        f         d}ee' ed~d¬¦  «        f         d€ee' ed�d‚dƒ¬¦  «        f         d ed!df d„„¦   «         Z4 e$ %                    d…g d†¢¬¦  «         ed‡¦  «        ¦  «         dS )Žz7Contains commands to interact with buckets via the CLI.é    )ÚIterableÚIterator)Ú	AnnotatedN)Úlogging)ÚBUCKET_PREFIXÚ
BucketFileÚBucketFolderÚFilterMatcherÚ_parse_bucket_urié   )ÚREPO_REGIONSé   )Ú	SearchOptÚTokenOptÚ
get_hf_apiÚtyper_factory)Úmake_cp)Úformat_sizeÚprint_file_listing)ÚArgumentÚOption)ÚOutputFormatÚoutz"Commands to interact with buckets.)ÚhelpÚcreate)zhf buckets create my-bucketz hf buckets create user/my-bucketz-hf buckets create hf://buckets/user/my-bucketz*hf buckets create user/my-bucket --privatez+hf buckets create user/my-bucket --exist-okz,hf buckets create user/my-bucket --region us)ÚnameÚexamplesFÚ	bucket_idzTBucket ID: bucket_name, namespace/bucket_name, or hf://buckets/namespace/bucket_nameÚprivatez	--privatezCreate a private bucket.Úregionz--regionzdCloud region in which to create the bucket. Can be one of 'us' or 'eu'. Requires Team plan or above.Úexist_okz
--exist-okz3Do not raise an error if the bucket already exists.ÚtokenÚreturnc                 ót  — t          |¬¦  «        }|                      t          ¦  «        r=t          | ¦  «        }|j        r t          j        d| › dt          › d�¦  «        ‚|j        } |                     | |r|nd||¬¦  «        }t          j
        d|j                             ¦   «         |j        ¬¦  «         dS )	zCreate a new bucket.©r"   z-Cannot specify a prefix for bucket creation: ú. Use namespace/bucket_name or únamespace/bucket_name.N)r   r    r!   zBucket created)ÚuriÚurl)r   Ú
startswithr   r   Úpath_in_repoÚclickÚBadParameterÚidÚcreate_bucketr   Úresultr(   Úto_urir)   )r   r   r    r!   r"   ÚapiÚparsedÚ
bucket_urls           úLC:\Projects\Historical\venv\Lib\site-packages\huggingface_hub/cli/buckets.pyr   r   1   sé   € õT ˜5Ð
!Ñ
!Ô
!€Cà×Ò�MÑ*Ô*ð Ý" 9Ñ-Ô-ˆØÔð 	ÝÔ$ðWÀ	ð Wð WÝ1>ðWð Wð Wñô ð ð ”Iˆ	à×"Ò"ØØ"Ð,��¨ØØð	 #ñ ô €Jõ „JÐ Z¤^×%:Ò%:Ñ%<Ô%<À*Ä.ÐQÑQÔQÐQÐQÐQó    Úargumentc                 ó|   — |                       t          ¦  «        r| t          t          ¦  «        d…         }n| }d|v S )zFCheck if argument is a bucket ID (namespace/name) vs just a namespace.Nú/)r*   r   Úlen)r7   Úpaths     r5   Ú_is_bucket_idr<   o   sA   € à×Ò�=Ñ)Ô)ð Ø��MÑ*Ô*Ð,Ð,Ô-ˆˆàˆØ�$ˆ;Ðr6   z	list | ls)
zhf buckets listzhf buckets list huggingfacez$hf buckets list --search "my-prefix"zhf buckets list user/my-bucketz!hf buckets list user/my-bucket -Rz!hf buckets list user/my-bucket -hz%hf buckets list user/my-bucket --treez(hf buckets list user/my-bucket --tree -hz+hf buckets list hf://buckets/user/my-bucketz%hf buckets list user/my-bucket/sub -RzyNamespace (user or org) to list buckets, or bucket ID (namespace/bucket_name(/prefix) or hf://buckets/...) to list files.Úhuman_readablez--human-readablez-hz$Show sizes in human readable format.Úas_treez--treez3List files in tree format (only for listing files).Ú	recursivez--recursivez-Rz0List files recursively (only for listing files).Úsearchc                 ó²   — | duot          | ¦  «        }|r,|�t          j        d¦  «        ‚t          | ||||¬¦  «         dS t	          | |||||¬¦  «         dS )z½List buckets or files in a bucket.

    When called with no argument or a namespace, lists buckets.
    When called with a bucket ID (namespace/bucket_name), lists files in the bucket.
    Nz'Cannot use --search when listing files.)r7   r=   r>   r?   r"   )Ú	namespacer@   r=   r>   r?   r"   )r<   r,   r-   Ú_list_filesÚ_list_buckets)r7   r=   r>   r?   r@   r"   Úis_file_modes          r5   Úlist_cmdrF   x   s¡   € ðr  4Ð'ÐC­M¸(Ñ,CÔ,C€Làð 
ØÐÝÔ$Ð%NÑOÔOÐOÝØØ)ØØØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
õ 	ØØØ)ØØØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r6   rB   c                 ó�  ‡— |rt          j        d¦  «        ‚|rt          j        d¦  «        ‚| �K|                      t          ¦  «        r1| t	          t          ¦  «        d…         } |                      d¦  «        } t          |¬¦  «        }ˆfd„|                     | |¬¦  «        D ¦   «         }t          j	        |dd	i¬
¦  «         dS )zList buckets in a namespace.z'Cannot use --tree when listing buckets.z,Cannot use --recursive when listing buckets.Nr9   r%   c                 ó€   •— g | ]:}|j         |j        ‰rt          |j        ‰¦  «        n|j        |j        |j        d œ‘Œ;S ))r.   r   ÚsizeÚtotal_filesÚ
created_at)r.   r   r   rI   rJ   rK   )Ú.0Úbucketr=   s     €r5   ú
<listcomp>z!_list_buckets.<locals>.<listcomp>Þ   se   ø€ ð 	ð 	ð 	ð ð ”)Ø”~Ø@NÐ_•K ¤¨^Ñ<Ô<Ð<ÐTZÔT_Ø!Ô-Ø Ô+ð	
ð 	
ð	ð 	ð 	r6   )rB   r@   rI   Úright)Ú
alignments)
r,   r-   r*   r   r:   Úrstripr   Úlist_bucketsr   Útable)rB   r@   r=   r>   r?   r"   r2   Úitemss     `     r5   rD   rD   È   sð   ø€ ð ð LÝÔ Ð!JÑKÔKÐKØð QÝÔ Ð!OÑPÔPÐPð Ð ×!5Ò!5µmÑ!DÔ!DÐØ�c¥-Ñ0Ô0Ð2Ð2Ô3ˆ	à×$Ò$ SÑ)Ô)ˆ	å
˜5Ð
!Ñ
!Ô
!€Cð	ð 	ð 	ð 	ð ×&Ò&°À6Ð&ÑJÔJð	ñ 	ô 	€Eõ „Iˆe ¨Ð 1Ð2Ñ2Ô2Ð2Ð2Ð2r6   rT   Úprefixc              #   óš   K  — |                      d¦  «        }| D ]0}|r(|j        |k    s|j                             |› d�¦  «        r|V — Œ1dS )a  Drop entries that are not `prefix` itself or below it.

    The server matches `prefix` lexically, so listing "logs" also returns "logs.json" or "logs_backup/...".
    Filesystem semantics require path components => keep only what's actually under the prefix.
    r9   N)rQ   r;   r*   )rT   rU   Úitems      r5   Ú_iter_under_prefixrX   ë   sk   è è € ð �]Š]˜3ÑÔ€FØð ð ˆØð 	˜œ fÒ,Ð,°´	×0DÒ0DÈÀ\À\À\Ñ0RÔ0RÐ,ØˆJˆJˆJøðð r6   c           	      óR  — |r.t           j        t          j        k    rt	          j        d¦  «        ‚t          |¬¦  «        }t          | ¦  «        }t          t          | 
                    |j        |j        pd|¬¦  «        |j        ¦  «        ¦  «        }t          ||||¬¦  «         dS )zList files in a bucket.z%Cannot use --tree with --format json.r%   N©rU   r?   )r=   r>   r?   )r   Úmoder   Újsonr,   r-   r   r   ÚlistrX   Úlist_bucket_treer.   r+   r   )r7   r=   r>   r?   r"   r2   r3   rT   s           r5   rC   rC   ÷   sº   € ð ð J•3”8�|Ô0Ò0Ð0ÝÔ Ð!HÑIÔIÐIå
˜5Ð
!Ñ
!Ô
!€CÝ˜xÑ(Ô(€FÝÝØ× Ò Ø”	ØÔ*Ð2¨dØ#ð !ñ ô ð
 Ôñ	
ô 	
ñ	ô 	€Eõ �u¨^ÀWÐXaÐbÑbÔbÐbÐbÐbr6   Úinfozhf buckets info user/my-bucketz+hf buckets info hf://buckets/user/my-bucketzFBucket ID: namespace/bucket_name or hf://buckets/namespace/bucket_namec                 ó¤   — t          |¬¦  «        }t          | ¦  «        }|                     |j        ¦  «        }t	          j        |d¬¦  «         dS )zGet info about a bucket.r%   r.   )Úid_keyN)r   r   Úbucket_infor.   r   Údict)r   r"   r2   r3   rM   s        r5   r_   r_     sO   € õ" ˜5Ð
!Ñ
!Ô
!€CÝ˜yÑ)Ô)€FØ�_Š_˜VœYÑ'Ô'€FÝ„HˆV˜DÐ!Ñ!Ô!Ð!Ð!Ð!r6   Údelete)z hf buckets delete user/my-bucketz-hf buckets delete hf://buckets/user/my-bucketz&hf buckets delete user/my-bucket --yesz-hf buckets delete user/my-bucket --missing-okÚyesz--yesz-yzSkip confirmation prompt.Ú
missing_okz--missing-okz3Do not raise an error if the bucket does not exist.c                 ó¬  — |                       t          ¦  «        r>t          | ¦  «        }|j        r t	          j        d| › dt          › d�¦  «        ‚|j        } n$d| vr t	          j        d| › dt          › d�¦  «        ‚t          j        d| › d�|¬	¦  «         t          |¬
¦  «        }| 
                    | |¬¦  «         t          j        d| ¬¦  «         dS )zDelete a bucket.

    This deletes the entire bucket and all its contents. Use `hf buckets rm` to remove individual files.
    z-Cannot specify a prefix for bucket deletion: r&   r'   r9   úInvalid bucket ID: ú-. Must be in format namespace/bucket_name or z(Are you sure you want to delete bucket 'ú'?©re   r%   )rf   zBucket deleted)r   N)r*   r   r   r+   r,   r-   r.   r   Úconfirmr   Údelete_bucketr0   )r   re   rf   r"   r3   r2   s         r5   rd   rd   )  s-  € ðJ ×Ò�MÑ*Ô*ð 
Ý" 9Ñ-Ô-ˆØÔð 	ÝÔ$ðWÀ	ð Wð WÝ1>ðWð Wð Wñô ð ð ”Iˆ	ˆ	Ø	�IÐ	Ð	ÝÔ ða )ð að aÝ;Hðað að añ
ô 
ð 	
õ
 „KÐH¸9ÐHÐHÐHÈcÐRÑRÔRÐRå
˜5Ð
!Ñ
!Ô
!€CØ×Ò�i¨JÐÑ7Ô7Ð7Ý„JÐ¨9Ð5Ñ5Ô5Ð5Ð5Ð5r6   zremove | rm)z)hf buckets remove user/my-bucket/file.txtz2hf buckets rm hf://buckets/user/my-bucket/file.txtz.hf buckets rm user/my-bucket/logs/ --recursivez:hf buckets rm user/my-bucket --recursive --include "*.tmp"z8hf buckets rm user/my-bucket/data/ --recursive --dry-runz¡Bucket path: namespace/bucket_name/path or hf://buckets/namespace/bucket_name/path. With --recursive, namespace/bucket_name is also accepted to target all files.z0Remove files recursively under the given prefix.Údry_runz	--dry-runz8Preview what would be deleted without actually deleting.ÚincludezQInclude only files matching pattern (can specify multiple). Requires --recursive.ÚexcludezLExclude files matching pattern (can specify multiple). Requires --recursive.c                 óh  ‡‡— t          | ¦  «        }|j        Š|j        }|dk    r|st          j        d‰› d‰› d�¦  «        ‚|s|r|st          j        d¦  «        ‚t          |¬¦  «        }	|�r%t          j        d¦  «        }
g }t          |	 	                    ‰|pdd	¬
¦  «        |¦  «        D ]R}t          |t          ¦  «        r;|                     |¦  «         |
                     dt          |¦  «        › d�¦  «         ŒS|
                     dt          |¦  «        › d�¦  «         |s|r t!          ||¬¦  «        Šˆfd„|D ¦   «         }n|}d„ |D ¦   «         }t#          d„ |D ¦   «         ¦  «        }t%          |d	¬¦  «        }|st          j        d¦  «         dS t          |¦  «        › d|› �}|sP|sNt          j        d                     d„ |D ¦   «         ¦  «        ¦  «         t          j        d|› d‰› d�d¬¦  «         |rMt          j        d                     ˆfd„|D ¦   «         ¦  «        ¦  «         t          j        d|› d�¦  «         dS |	                     ‰|¬¦  «         t          j        d|› d‰› d �‰t          |¦  «        |¬!¦  «         dS |}|st          j        d"¦  «        ‚|r7t          j        d#t0          › ‰› d$|› �¦  «         t          j        d%¦  «         dS t          j        d&|› d'‰› d�|¬¦  «         |	                     ‰|g¬¦  «         t          j        d(|‰¬)¦  «         dS )*zbRemove files from a bucket.

    To delete an entire bucket, use `hf buckets delete` instead.
    Ú z?No file path specified. To remove files, provide a path (e.g. 'zd/FILE') or use --recursive to remove all files. To delete the entire bucket, use `hf buckets delete z`.z,--include and --exclude require --recursive.r%   zListing files from remoteNTrZ   zListing files from remote (z files))Úinclude_patternsÚexclude_patternsc                 óH   •— g | ]}‰                      |j        ¦  «        ¯|‘ŒS © )Úmatchesr;   )rL   ÚfÚmatchers     €r5   rN   zremove.<locals>.<listcomp>Ã  s,   ø€ ÐMÐMÐM 1°W·_²_ÀQÄVÑ5LÔ5LÐM˜QÐMÐMÐMr6   c                 ó   — g | ]	}|j         ‘Œ
S rv   )r;   ©rL   rx   s     r5   rN   zremove.<locals>.<listcomp>Ç  s   € Ð4Ð4Ð4 �a”fÐ4Ð4Ð4r6   c              3   ó$   K  — | ]}|j         V — Œd S ©N)rI   r{   s     r5   ú	<genexpr>zremove.<locals>.<genexpr>È  s$   è è € Ð7Ð7 A˜œÐ7Ð7Ð7Ð7Ð7Ð7r6   )r=   zNo files to remove.z file(s) totaling ú
c              3   ó    K  — | ]	}d |› �V — Œ
dS )z  Nrv   )rL   r;   s     r5   r~   zremove.<locals>.<genexpr>Ò  s(   è è € ÐBÐB¨t˜{ D˜{˜{ÐBÐBÐBÐBÐBÐBr6   zRemove z from 'rj   Frk   c              3   ó6   •K  — | ]}d t           › ‰› d|› �V — ŒdS )údelete: r9   N)r   )rL   r;   r   s     €r5   r~   zremove.<locals>.<genexpr>Ö  s:   øè è € ÐcÐcÐPTÐK­-ÐK¸ÐKÐKÀTÐKÐKÐcÐcÐcÐcÐcÐcr6   z
(dry run) z would be removed.)rd   zRemoved ú')r   Úfiles_deletedrI   zFile path cannot be empty.r‚   r9   z"(dry run) 1 file would be removed.zRemove 'z' from 'zFile removed)r;   r   )r   r.   r+   r,   r-   r   r   ÚstatusrX   r^   Ú
isinstancer   ÚappendÚupdater:   Údoner
   Úsumr   ÚtextÚjoinrl   Úbatch_bucket_filesr0   r   )r7   r?   re   rn   ro   rp   r"   r3   rU   r2   r…   Ú	all_filesrW   Úmatched_filesÚ
file_pathsÚ
total_sizeÚsize_strÚcount_labelÚ	file_pathr   ry   s                      @@r5   Úremover•   c  s"  øø€ õz ˜xÑ(Ô(€FØ”	€IØÔ €Fà�‚|€|˜I€|ÝÔ ðRØ ðRð RàDMðRð Rð Rñ
ô 
ð 	
ð 	ð Q�7ð Q Ið QÝÔ Ð!OÑPÔPÐPå
˜5Ð
!Ñ
!Ô
!€Càñ ?HÝ”Ð7Ñ8Ô8ˆà&(ˆ	Ý&Ø× Ò ØØ�~ Øð !ñ ô ð
 ñ
ô 
ð 
	Uð 
	UˆDõ ˜$¥
Ñ+Ô+ð UØ× Ò  Ñ&Ô&Ð&Ø—’ÐS½CÀ	¹N¼NÐSÐSÐSÑTÔTÐTøØ�ŠÐIµ#°i±.´.ÐIÐIÐIÑJÔJÐJàð 	&�gð 	&Ý#°WÈwÐWÑWÔWˆGØMÐMÐMÐM¨	ÐMÑMÔMˆMˆMà%ˆMà4Ð4 mÐ4Ñ4Ô4ˆ
ÝÐ7Ð7¨Ð7Ñ7Ô7Ñ7Ô7ˆ
Ý˜z¸$Ð?Ñ?Ô?ˆàð 	ÝŒHÐ*Ñ+Ô+Ð+ØˆFå˜Z™œÐFÐF¸HÐFÐFˆàð 	P˜7ð 	PÝŒH�T—Y’YÐBÐB°zÐBÑBÔBÑBÔBÑCÔCÐCÝŒKÐC +ÐCÐC°iÐCÐCÐCÈÐOÑOÔOÐOàð 	ÝŒH�T—Y’YÐcÐcÐcÐcÐXbÐcÑcÔcÑcÔcÑdÔdÐdÝŒHÐA +ÐAÐAÐAÑBÔBÐBØˆFà×Ò˜y°ÐÑ<Ô<Ð<ÝŒ
Ø7�{Ð7Ð7¨9Ð7Ð7Ð7ØÝ˜j™/œ/Øð		
ñ 	
ô 	
ð 	
ð 	
ð 	
ð ˆ	Øð 	CÝÔ$Ð%AÑBÔBÐBàð 	ÝŒHÐF¥ÐF¨yÐFÐF¸9ÐFÐFÑGÔGÐGÝŒHÐ9Ñ:Ô:Ð:ØˆFåŒÐ?˜yÐ?Ð?°)Ð?Ð?Ð?ÀSÐIÑIÔIÐIà×Ò˜y°)°ÐÑ=Ô=Ð=ÝŒ
�>¨	¸YÐGÑGÔGÐGÐGÐGr6   Úmove)z/hf buckets move user/old-bucket user/new-bucketz/hf buckets move user/my-bucket my-org/my-bucketzIhf buckets move hf://buckets/user/old-bucket hf://buckets/user/new-bucketÚfrom_idzMSource bucket ID: namespace/bucket_name or hf://buckets/namespace/bucket_nameÚto_idzRDestination bucket ID: namespace/bucket_name or hf://buckets/namespace/bucket_namec                 ó‚  — t          | ¦  «        }|j        r t          j        d| › dt          › d�¦  «        ‚t          |¦  «        }|j        r t          j        d|› dt          › d�¦  «        ‚t          |¬¦  «        }|                     |j        |j        ¬¦  «         t          j	        d|j        |j        ¬¦  «         dS )z2Move (rename) a bucket to a new name or namespace.z)Cannot specify a prefix for bucket move: r&   r'   r%   )r—   r˜   zBucket movedN)
r   r+   r,   r-   r   r   Úmove_bucketr.   r   r0   )r—   r˜   r"   Úparsed_fromÚ	parsed_tor2   s         r5   r–   r–   ò  sÿ   € õ2 $ GÑ,Ô,€KØÔð 
ÝÔ ðS¸ð Sð SÝ-:ðSð Sð Sñ
ô 
ð 	
õ " %Ñ(Ô(€IØÔð 
ÝÔ ðS¸ð Sð SÝ-:ðSð Sð Sñ
ô 
ð 	
õ
 ˜5Ð
!Ñ
!Ô
!€CØ‡O‚O˜KœN°)´,€OÑ?Ô?Ð?Ý„Jˆ~ {¤~¸Y¼\ÐJÑJÔJÐJÐJÐJr6   Úsettings)z,hf buckets settings user/my-bucket --privatez+hf buckets settings user/my-bucket --publicz9hf buckets settings hf://buckets/user/my-bucket --privatezMake the bucket private.Úpublicz--publiczMake the bucket public.c                 óÞ  — ||k    rt          j        d¦  «        ‚|                      t          ¦  «        r>t	          | ¦  «        }|j        r t          j        d| › dt          › d�¦  «        ‚|j        } n$d| vr t          j        d| › dt          › d�¦  «        ‚t          |¬¦  «        }|                     | |¬	¦  «         t          j
        d
| |¬¦  «         t          j        d| › d�¦  «         dS )z$Update bucket settings (visibility).z-Specify exactly one of --private or --public.z-Cannot specify a prefix for bucket settings: r&   r'   r9   rh   ri   r%   )r   zBucket settings updated)r   r   zRun `hf buckets info z` to view bucket details.N)r,   r-   r*   r   r   r+   r.   r   Úupdate_bucket_settingsr   r0   Úhint)r   r   rž   r"   r3   r2   s         r5   r�   r�     sG  € ð@ �&ÒÐÝÔ Ð!PÑQÔQÐQà×Ò�MÑ*Ô*ð 
Ý" 9Ñ-Ô-ˆØÔð 	ÝÔ$ðWÀ	ð Wð WÝ1>ðWð Wð Wñô ð ð ”Iˆ	ˆ	Ø	�IÐ	Ð	ÝÔ ða )ð að aÝ;Hðað að añ
ô 
ð 	
õ
 ˜5Ð
!Ñ
!Ô
!€CØ×Ò˜y°'ÐÑ:Ô:Ð:Ý„JÐ(°IÀwÐOÑOÔOÐOÝ„HÐI YÐIÐIÐIÑJÔJÐJÐJÐJr6   Úsync)z2hf buckets sync ./data hf://buckets/user/my-bucketz2hf buckets sync hf://buckets/user/my-bucket ./dataz;hf buckets sync ./data hf://buckets/user/my-bucket --deletez^hf buckets sync hf://buckets/user/my-bucket ./data --include "*.safetensors" --exclude "*.tmp"zIhf buckets sync ./data hf://buckets/user/my-bucket --plan sync-plan.jsonlz'hf buckets sync --apply sync-plan.jsonlz<hf buckets sync ./data hf://buckets/user/my-bucket --dry-runzChf buckets sync ./data hf://buckets/user/my-bucket --dry-run | jq .ÚsourcezKSource path: local directory or hf://buckets/namespace/bucket_name(/prefix)ÚdestzPDestination path: local directory or hf://buckets/namespace/bucket_name(/prefix)z/Delete destination files not present in source.Úignore_timesz--ignore-timesz;Skip files only based on size, ignoring modification times.Úignore_sizesz--ignore-sizesz<Skip files only based on modification times, ignoring sizes.Úplanz=Save sync plan to JSONL file for review instead of executing.Úapplyz#Apply a previously saved plan file.z5Print sync plan to stdout as JSONL without executing.z6Include files matching pattern (can specify multiple).z6Exclude files matching pattern (can specify multiple).Úfilter_fromz(Read include/exclude patterns from file.Úexistingz
--existingzASkip creating new files on receiver (only update existing files).Úignore_existingz--ignore-existingzCSkip updating files that exist on receiver (only create new files).Úverbosez	--verbosez-vz%Show detailed logging with reasoning.c                 óò   — t          |¬¦  «        }|                     | ||||||||	|
||||t          j        ¦   «         ¬¦  «         |r-t          j        ¦   «         st          j        d|› d�¦  «         dS dS dS )z0Sync files between local directory and a bucket.r%   )r£   r¤   rd   r¥   r¦   rª   r«   ro   rp   r©   r§   r¨   rn   r¬   ÚquietzRun `hf buckets sync --apply z` to execute this plan.N)r   Úsync_bucketr   Úis_quietr¡   )r£   r¤   rd   r¥   r¦   r§   r¨   rn   ro   rp   r©   rª   r«   r¬   r"   r2   s                   r5   r¢   r¢   [  s¶   € õX ˜5Ð
!Ñ
!Ô
!€CØ‡O‚OØØØØ!Ø!ØØ'ØØØØØØØÝŒl‰nŒnð ñ ô ð ð" ð P•C”L‘N”Nð PÝŒÐN°ÐNÐNÐNÑOÔOÐOÐOÐOðPð Pð Pð Pr6   Úcp)zEhf buckets cp hf://buckets/username/my-bucket/config.json config.jsonz<hf buckets cp hf://buckets/username/my-bucket/data.csv data/z;hf buckets cp hf://buckets/username/my-bucket/config.json -zQhf buckets cp model.safetensors hf://buckets/username/my-bucket/model.safetensorsz?hf buckets cp config.json hf://buckets/username/my-bucket/logs/z;hf buckets cp - hf://buckets/username/my-bucket/config.jsonzYhf buckets cp hf://buckets/username/my-bucket/data.csv hf://buckets/username/dest-bucket/z_hf buckets cp hf://buckets/username/source-bucket/logs/ hf://buckets/username/dest-bucket/logs/Úbuckets)FNFN)NFFFNNr}   )FFN)FFFNNN)NNFFFNNFNNNFFFN)5Ú__doc__Úcollections.abcr   r   Útypingr   r,   Úhuggingface_hubr   Úhuggingface_hub._bucketsr   r   r	   r
   r   Úhf_apir   Ú
_cli_utilsr   r   r   r   Ú_cpr   Ú_file_listingr   r   Ú
_frameworkr   r   Ú_outputr   r   Ú
get_loggerÚ__name__ÚloggerÚbuckets_cliÚcommandÚstrÚboolr   r<   rF   rD   rX   rC   r_   rd   r]   r•   r–   r�   r¢   rv   r6   r5   ú<module>rÅ      sm  ðð >Ð =à .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø Ð Ð Ð Ð Ð à €€€à #Ð #Ð #Ð #Ð #Ð #ðð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ð 
ˆÔ	˜HÑ	%Ô	%€ð ˆmÐ!EÐFÑFÔF€ð ×ÒØ	ðð ð ð ñ 
ô 
ð0 	ð 	ð 	Øð90Rð 0RØØØˆØgð	
ñ 	
ô 	
ð	ôð0Rð ØØˆØØ+ð	
ñ 	
ô 	
ð	ôð0Rð Ø�tÑØˆØØwð	
ñ 	
ô 	
ð	ôð0Rð* ØØˆØØFð	
ñ 	
ô 	
ð	ôð+0Rð8 ð90Rð: 
ð;0Rð 0Rð 0Rñ
ô 
ð0Rðf˜Cð  Dð ð ð ð ð ×ÒØ	ðð ð ð ñ ô ð0 	ð 	ð 	ð 	ØØðE>
ð >
ØØˆd‰
ØˆðWð	
ñ 	
ô 	
ð	ôð>
ð ØØˆØØØ7ð	
ñ 	
ô 	
ð	ôð>
ð$ ØØˆØØFð	
ñ 	
ô 	
ð	ôð%>
ð2 ØØˆØØØCð	
ñ 	
ô 	
ð	ôð3>
ðB ðC>
ðD ðE>
ðF 
ðG>
ð >
ð >
ñô ð>
ðB 3Ø�T‰zð 3à�$‰Jð 3ð ð 3ð ð	 3ð
 ð 3ð �‰:ð 3ð 
ð 3ð  3ð  3ð  3ðF	˜h z°LÑ'@ÔAð 	È3ð 	ÐS[Ð\fÐiuÑ\uÔSvð 	ð 	ð 	ð 	ðcØðcàðcð ðcð ð	cð
 �‰:ðcð 
ðcð cð cð cð6 ×ÒØ	à(Ø5ðð ñ ô ð ð"ð "ØØØˆØYð	
ñ 	
ô 	
ð	ôð"ð ð"ð 
ð"ð "ð "ñô ð"ð  ×ÒØ	ðð ð ð ñ ô ð. 	ð 	Øð-.6ð .6ØØØˆØYð	
ñ 	
ô 	
ð	ôð.6ð 
ØØˆØØØ,ð	
ñ 	
ô 	
ð	ô
ð.6ð ØØˆØØFð	
ñ 	
ô 	
ð	ôð.6ð, ð-.6ð. 
ð/.6ð .6ð .6ñô ð.6ðb ×ÒØ	ðð ð ð ñ 	ô 	ð6 	ð 	ð 	ð 	ð 	Øð[BHð BHØØØˆðað	
ñ 	
ô 	
ð	ôðBHð ØØˆØØØCð	
ñ 	
ô 	
ð	ôðBHð$ 
ØØˆØØØ,ð	
ñ 	
ô 	
ð	ô
ð%BHð4 ØØˆØØKð	
ñ 	
ô 	
ð	ôð5BHðB ØˆSŒ	�DÑØˆØdð	
ñ 	
ô 	
ð	ôðCBHðN ØˆSŒ	�DÑØˆØ_ð	
ñ 	
ô 	
ð	ôðOBHðZ ð[BHð\ 
ð]BHð BHð BHñ	ô 	ðBHðJ ×ÒØ	ðð ð ð ñ ô ð* ð"Kð "KØØØˆØ`ð	
ñ 	
ô 	
ð	ôð"Kð ØØˆØeð	
ñ 	
ô 	
ð	ôð"Kð ð"Kð 
ð"Kð "Kð "Kñô ð"KðJ ×ÒØ	ðð ð ð ñ ô ð* 	ð 	Øð+,Kð ,KØØØˆØYð	
ñ 	
ô 	
ð	ôð,Kð ØØˆØØ+ð	
ñ 	
ô 	
ð	ôð,Kð ØØˆØØ*ð	
ñ 	
ô 	
ð	ôð,Kð* ð+,Kð, 
ð-,Kð ,Kð ,Kñô ð,Kðh ×ÒØ	ð	ð 	ð 	ð ñ ô ð& 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ØðyrPð rPØØˆd‰
ØˆØ^ð	
ñ 	
ô 	
ð	ôðrPð Øˆd‰
ØˆØcð	
ñ 	
ô 	
ð	ôðrPð ØØˆØBð	
ñ 	
ô 	
ð	ôðrPð& ØØˆØØNð	
ñ 	
ô 	
ð	ôð'rPð4 ØØˆØØOð	
ñ 	
ô 	
ð	ôð5rPðB Øˆd‰
ØˆØPð	
ñ 	
ô 	
ð	ôðCrPðN Øˆd‰
ØˆØ6ð	
ñ 	
ô 	
ð	ôðOrPðZ ØØˆØØHð	
ñ 	
ô 	
ð	ôð[rPðh ØˆSŒ	�DÑØˆØIð	
ñ 	
ô 	
ð	ôðirPðt ØˆSŒ	�DÑØˆØIð	
ñ 	
ô 	
ð	ôðurPð@ Øˆd‰
ØˆØ;ð	
ñ 	
ô 	
ð	ôðArPðL ØØˆØØTð	
ñ 	
ô 	
ð	ôðMrPðZ ØØˆØØVð	
ñ 	
ô 	
ð	ôð[rPðh ØØˆØØØ8ð	
ñ 	
ô 	
ð	ôðirPðx ðyrPðz 
ð{rPð rPð rPñô ðrPðv€× Ò Ø	ðð ð ð ñ ô ð 
€'ˆ)ÑÔñô ð ð ð r6   