
    "jA              (          d Z ddlZddlmZ ddlZddlmZmZ ddlm	Z	m
Z
mZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlm Z m!Z!  ed	
          Z"e"#                    d          dej$        ddfd            Z% ed
          Z& ed
          Z'e"(                    e&d           e"(                    e'd            G d de)ej*                  Z+ee,dz   ej-        dd
          f         Z.ee,dz   ej-        dd
          f         Z/eedz   ej-        dd
          f         Z0eedz   ej-        dd
          f         Z1ee2dz   ej-        dd 
          f         Z3e"4                    d!g d"#          ej5        dddddd$ddddddddde j6        fd%ed&ed'ee)dz   ej-        d(
          f         d)ed*e.d+e/d,ed-ee, ej-        d.
          f         d/ee)dz   ej-        d0
          f         d1e0d2e1d3e3d4ed5ed6ed7ed8ed9eddf&d:            Z7e"4                    d;g d<#          dej5        ddddd$dddddddde j6        fd=ed>ee)dz   ej8        d?
          f         d&ed)ed*e.d+e/d,ed-ee, ej-        d.
          f         d1e0d2e1d3e3d4ed5ed6ed7ed8ed9eddf$d@            Z9e"4                    dAdBg#          ej5        dd$d$e j6        fd%ed&ed,edCee, ej-        dD
          f         dEee, ej-        dFdGdH
          f         d9eddfdI            Z:e"4                    dJdKg#          dej5        e j6        fd=ed>ed,ed&ed9eddfdL            Z;e"4                    dMg dN#          dddddej5        e j6        fd%edOee+dz   ej-        dP
          f         d)ed*e.d+e/d,ed&ed9eddfdQ            Z<e"4                    dRg dS#          ej5        dddd$de j6        fd%edTee=e)          ej8        dU
          f         d&edVedWee)dz   ej-        dX
          f         dYee)dz   ej-        dZ
          f         d[ee, ej-        d\
          f         d,ed9eddfd]            Z>e'4                    d!d^d_g#          ddej5        d$e j6        fd%edee) ej8        d`
          f         dVed,ed&ed-ee, ej-        da
          f         d9eddfdb            Z?e'4                    dAdcg#          dej5        e j6        fd%edee) ej8        dd
          f         d,ed&ed9eddfde            Z@e&4                    d!dfdgg#          dddej5        e j6        fd%edee) ej8        dh
          f         diee)dz   ej-        djdkdl
          f         dVed,ed&ed9eddfdm            ZAe&4                    dndog#          dej5        e j6        fd%ed,ed&ed9eddf
dp            ZBe&4                    dAdqg#          d$dej5        e j6        fd%edee) ej8        dr
          f         dEee, ej-        dFdGds
          f         d,ed&ed9eddfdt            ZCdS )uae  Contains commands to interact with repositories on the Hugging Face Hub.

Usage:
    # create a new dataset repo on the Hub
    hf repos create my-cool-dataset --repo-type=dataset

    # create a private model repo on the Hub
    hf repos create my-cool-model --private

    # delete files from a repo on the Hub
    hf repos delete-files my-model file.txt
    N)	Annotated)SpaceHardwareSpaceStorage)CLIErrorHfHubHTTPErrorRepositoryNotFoundErrorRevisionNotFoundError   )
EnvFileOptEnvOptFormatWithAutoOpt
PrivateOpt	RepoIdArgRepoTypeRepoTypeOptRevisionOptSecretsFileOpt
SecretsOptTokenOpt
VolumesOptenv_map_to_key_value_list
get_hf_apiparse_env_mapparse_volumestyper_factory)OutputFormatWithAutooutzManage repos on the Hub.)helpT)invoke_without_commandctxreturnc                 H    | j         dk    rt          j        d           d S d S )Nrepoz/`hf repo` is deprecated in favor of `hf repos`.)	info_namer   warning)r    s    c/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/huggingface_hub/cli/repos.py_repos_callbackr'   <   s.    
}EFFFFF     z"Manage tags for a repo on the Hub.z&Manage branches for a repo on the Hub.tag)namebranchc                       e Zd ZdZdZdZdS )GatedChoicesautomanualfalseN)__name__
__module____qualname__r.   r/   r0    r(   r&   r-   r-   H   s        DFEEEr(   r-   z--publiczDWhether to make the repo public. Ignored if the repo already exists.z--protectedzVWhether to make the Space protected (Spaces only). Ignored if the repo already exists.z--flavorzOSpace hardware flavor (e.g. 'cpu-basic', 't4-medium', 'l4x4'). Only for Spaces.z	--storagezq(Deprecated, use volumes instead) Space persistent storage tier ('small', 'medium', or 'large'). Only for Spaces.z--sleep-timez[Seconds of inactivity before the Space is put to sleep. Use -1 to disable. Only for Spaces.create)zhf repos create my-modelz8hf repos create my-dataset --repo-type dataset --privatezxhf repos create my-space --type space --space-sdk gradio --flavor t4-medium --secrets HF_TOKEN -e THEME=dark --protectedzihf repos create my-space --type space --space-sdk gradio -v hf://gpt2:/models -v hf://buckets/org/b:/data)examplesFrepo_id	repo_type	space_sdkzEHugging Face Spaces SDK type. Required when --type is set to 'space'.privatepublic	protectedtokenexist_okz-Do not raise an error if repo already exists.resource_group_idzoResource group in which to create the repo. Resource groups is only available for Enterprise Hub organizations.hardwarestorage
sleep_timesecretssecrets_fileenvenv_filevolumeformatc                 d   t          |          }|                    | |j        |rdn	|rdn|rdnd|||||	|
|t          t	          ||                    t          t	          ||                    t          |                    }t          j        d|j        t          |                     dS )	zCreate a new repo on the Hub.r=   r:   r;   r<   N)r7   r8   
visibilityr=   r>   r?   r9   space_hardwarespace_storagespace_sleep_timespace_secretsspace_variablesspace_volumeszRepo created)r7   url)
r   create_repovaluer   r   r   r   resultr7   str)r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   apirepo_urls                       r&   repo_createrY   v   s    Z 5
!
!
!C/ 'g99-gXXT]Eg[[cg+#/g|0T0TUU1-X2N2NOO#F++   H J~x'7S]]KKKKKKr(   	duplicate)z/hf repos duplicate openai/gdpval --type datasetzzhf repos duplicate multimodalart/dreambooth-training my-dreambooth --type space --flavor l4x4 --secrets HF_TOKEN --privatezfhf repos duplicate org/my-space my-space --type space -v hf://gpt2:/models -v hf://buckets/org/b:/datafrom_idto_idz_Destination repo ID (e.g. `myorg/my-copy`). Defaults to your namespace with the same repo name.c                 d   t          |          }|                    | ||j        |rdn	|rdn|rdnd||||	|
t          t	          ||                    t          t	          ||                    t          |                    }t          j        d| |j        t          |                     dS )	z7Duplicate a repo on the Hub (model, dataset, or Space).rJ   r:   r;   r<   N)r[   r\   r8   rK   r=   r>   rL   rM   rN   rO   rP   rQ   zRepo duplicated)r[   r\   rR   )
r   duplicate_reporT   r   r   r   r   rU   r7   rV   )r[   r\   r8   r:   r;   r<   r=   r>   r@   rA   rB   rC   rD   rE   rF   rG   rH   rW   rX   s                      r&   repo_duplicater_      s    L 5
!
!
!C!!/ 'g99-gXXT]Eg[[cg#/g|0T0TUU1-X2N2NOO#F++ "  H J '9IsS[}}]]]]]]r(   deletezhf repos delete my-model
missing_okz=If set to True, do not raise an error if repo does not exist.yesz-yz--yesz#Answer Yes to prompt automatically.c                     t          j        d|j         d|  d|           t          |          }|                    | |j        |           t          j        d|            d	S )
z>Delete a repo from the Hub. This is an irreversible operation.z$You are about to permanently delete  'z'. Proceed?rb   rJ   )r7   r8   ra   zRepo deletedr7   N)r   confirmrT   r   delete_reporU   )r7   r8   r=   ra   rb   rH   rW   s          r&   repo_deleteri      s    , K^y^^'^^^dghhhh
5
!
!
!COO/    
 J~w//////r(   movez;hf repos move old-namespace/my-model new-namespace/my-modelc                     t          |          }|                    | ||j                   t          j        d| |           dS )z8Move a repository from a namespace to another namespace.rJ   )r[   r\   r8   z
Repo moved)r[   r\   N)r   	move_reporT   r   rU   )r[   r\   r=   r8   rH   rW   s         r&   	repo_moverm     sY     5
!
!
!CMM/    
 J|WE::::::r(   settings)z$hf repos settings my-model --privatez'hf repos settings my-model --gated autoz8hf repos settings my-space --repo-type space --protectedgatedz$The gated status for the repository.c                     t          |          }|                    | |dn|t          j        u rdn|j        |rdn	|rdn|rdnd|j                   t          j        d| 	           dS )
z$Update the settings of a repository.rJ   NFr:   r;   r<   )r7   ro   rK   r8   zRepo settings updatedrf   )r   update_repo_settingsr-   r0   rT   r   rU   )	r7   ro   r:   r;   r<   r=   r8   rH   rW   s	            r&   repo_settingsrr      s    0 5
!
!
!C}tt5L<N3N3N%%TYT_ 'g99-gXXT]Eg[[cg/	     J&888888r(   zdelete-files)z'hf repos delete-files my-model file.txtz'hf repos delete-files my-model "*.json"z&hf repos delete-files my-model folder/patternszXGlob patterns to match files to delete. Based on fnmatch, '*' matches files recursively.revisioncommit_messagez9The summary / title / first line of the generated commit.commit_descriptionz(The description of the generated commit.	create_prz7Whether to create a new Pull Request for these changes.c	           	          t          |          }	|	                    || |j        ||||          }
t          j        d| |
           dS )z$Delete files from a repo on the Hub.rJ   )delete_patternsr7   r8   rt   ru   rv   rw   zFiles deleted)r7   
commit_urlN)r   delete_filesrT   r   rU   )r7   rs   r8   rt   ru   rv   rw   r=   rH   rW   rR   s              r&   repo_delete_filesr|   B  se    P 5
!
!
!C


 /%-   C JC@@@@@@r(   z#hf repos branch create my-model devz5hf repos branch create my-model dev --revision abc123z!The name of the branch to create.z?If set to True, do not raise an error if branch already exists.c                     t          |          }|                    | |||j        |           t          j        d||j        |            dS )z*Create a new branch for a repo on the Hub.rJ   )r7   r+   rt   r8   r>   zBranch createdr+   r8   r7   N)r   create_branchrT   r   rU   )r7   r+   rt   r=   r8   r>   rH   rW   s           r&   branch_creater   w  sg    6 5
!
!
!C/     J)/SZ[[[[[[r(   z#hf repos branch delete my-model devz!The name of the branch to delete.c                     t          |          }|                    | ||j                   t          j        d||j        |            dS )z'Delete a branch from a repo on the Hub.rJ   )r7   r+   r8   zBranch deletedr~   N)r   delete_branchrT   r   rU   )r7   r+   r=   r8   rH   rW   s         r&   branch_deleter     sa     5
!
!
!C/    
 J)/SZ[[[[[[r(   z!hf repos tag create my-model v1.0z4hf repos tag create my-model v1.0 -m "First release"zThe name of the tag to create.messagez-mz	--messagez%The description of the tag to create.c                    |j         }t          |          }	 |                    | ||||           n# t          $ r-}	t	          |                                 d|  d          |	d}	~	wt          $ r}	t	          d| d          |	d}	~	wt          $ r-}	|	j        j	        dk    rt	          d| d	|  d
          |	 d}	~	ww xY wt          j        d|||            dS )zCreate a tag for a repo.rJ   )r7   r)   tag_messagert   r8   rd   ' not found.Nz
Revision 'i  Tag 'z' already exists on ''.zTag createdr)   r8   r7   )rT   r   
create_tagr   r   
capitalizer	   r   responsestatus_coder   rU   )
r7   r)   r   rt   r=   r8   rH   repo_type_strrW   es
             r&   
tag_creater     s3   : OM
5
!
!
!C	wCWxcpqqqq" V V V-2244MMMMMNNTUU  C C C:H:::;;B   :!S((H3HHWHHHIIqP J}#PPPPPPs,   4 
C(A&&C3BC(B<<Cz	list | lszhf repos tag list my-modelc                 $   |j         }t          |          }	 |                    | |          }n:# t          $ r-}t	          |                                 d|  d          |d}~ww xY wd |j        D             }t          j        |           dS )zList tags for a repo.rJ   )r7   r8   rd   r   Nc                 8    g | ]}|j         |j        |j        d S )r*   target_commitrefr   ).0ts     r&   
<listcomp>ztag_list.<locals>.<listcomp>  s)    aaaRSafqquMMaaar(   )	rT   r   list_repo_refsr   r   r   tagsr   table)	r7   r=   r8   rH   r   rW   refsr   itemss	            r&   tag_listr     s     OM
5
!
!
!CV!!']!KK" V V V-2244MMMMMNNTUUVaaW[W`aaaEIes   1 
A((A##A(z!hf repos tag delete my-model v1.0zThe name of the tag to delete.z"Answer Yes to prompt automaticallyc                    |j         }t          j        d| d| d|             t          j        d|           t	          |          }	 |                    | ||           n^# t          $ r-}t          |                                 d|  d	          |d
}~wt          $ r}t          d| d|  d          |d
}~ww xY wt          j
        d|||            d
S )zDelete a tag for a repo.zYou are about to delete tag z on  zProceed?re   rJ   )r7   r)   r8   rd   r   Nr   z' not found on 'r   zTag deletedr   )rT   r   textrg   r   
delete_tagr   r   r   r	   rU   )	r7   r)   rb   r=   r8   rH   r   rW   r   s	            r&   
tag_deleter     s'   , OMHNCNN]NNWNNOOOK
$$$$
5
!
!
!CHwC=IIII" V V V-2244MMMMMNNTUU  H H H?s??G???@@aGHJ}#PPPPPPs$   A% %
C /(BC $B;;C )D__doc__enumtypingr   typerhuggingface_hubr   r   huggingface_hub.errorsr   r   r   r	   
_cli_utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   _outputr   r   	repos_clicallbackContextr'   tag_cli
branch_cli	add_typerrV   Enumr-   boolOption	PublicOptProtectedOptSpaceHardwareOptSpaceStorageOptintSpaceSleepTimeOptcommandmodelr.   rY   Argumentr_   ri   rm   rr   listr|   r   r   r   r   r   r4   r(   r&   <module>r      s            7 7 7 7 7 7 7 7 k k k k k k k k k k k k                                     & / . . . . . . . M9:::	 400G G4 G G G 10G
 -A
B
B
B] HIII
 	  G%  ( ( ( 	  JX  . . .    3	    4KELS  	 4KELe   DEL^    4EL A   $JELj          &^ 	" 	 	!%#$(#' 4 9C4L 4L4L4L d
X	
 	
 	
	4L 4L 4L 4L 4L @	
 	
 	
	4L& !d
 C	
 	
 	
	'4L2 34L4 54L6 "74L8 94L: !;4L< 
=4L> ?4L@ A4LB C4LD 
E4L 4L 4L 4Ln       	%^" 	!%#$(#' 4 97-^ -^-^d
r	
 	
 	
	-^ -^ -^ -^ -^ -^ @	
 	
 	
	-^& '-^( )-^* "+-^, --^. !/-^0 
1-^2 3-^4 5-^6 7-^8 
9-^ -^ -^ -^` 8'A&BCC &^ 	 	 4 9%0 000 0 P	
 	
 	
		0 
6	
 	
 	
	
0$ %0& 
'0 0 0 DC0> 6%b$cdd %^ 4 9; ;;; ; 	;
 ; 
; ; ; ed;"       	"%^ 4 99 99t7	
 	
 	
	9 9 9 9 9 9 9 
9 9 9 94        &^  	 	 	 4 9;*A *A*AS	k	
 	
 	
	*A *A *A d
L	
 	
 	
	*A  "d
;	
 	
 	
	!*A, J	
 	
 	
	-*A8 9*A: ;*A< 
=*A *A *A *AZ -?    !%^ 	 4 9#\ \\4	
 	
 	
	\ \ \ \ R	
 	
 	
	\" #\$ 
%\ \ \ \> H(M'NOO %^ 4 9\ \\4	
 	
 	
	\ \ \ \ 
\ \ \ PO\, 	+>   , 	 %^ 4 9'"Q "Q"Q	1	
 	
 	
	
"Q d
8	
 	
 	
	"Q  !"Q" #"Q$ %"Q& '"Q( 
)"Q "Q "Q "QJ 	(D'EFF %^ 4 9	   	
 
   GF" 	%H$IJJ  	%^ 4 9%Q QQ	1	
 	
 	
	
Q 
5	
 	
 	
	
Q  !Q" #Q$ %Q& 
'Q Q Q KJQ Q Qr(   