
    qi3                     	   d Z ddlZddlZddlmZmZ ddlZddlmZm	Z	m
Z
mZ ddlmZ ddlmZmZmZmZmZmZmZmZ  ed	      Zej1                  d
      dej2                  ddfd       Z ed	      Z ed	      Zej;                  ed       ej;                  ed        G d deej>                        Z ejC                  dddg      ejD                  dddddfdededeee    ejF                  d	      f   ded ed!ee$ ejF                  d"	      f   d#eee    ejF                  d$	      f   ddfd%       Z%ejC                  d&d'd(g      dejD                  dddfd)ed*eee    ejL                  d+	      f   deded ed!ee$ ejF                  d"	      f   ddfd,       Z'ejC                  d-d.g      ejD                  ddfdeded ed/ee$ ejF                  d0	      f   ddf
d1       Z(ejC                  d2d3g      dejD                  fd)ed*ed ededdf
d4       Z)ejC                  d5d6d7g      dddejD                  fded8eee     ejF                  d9	      f   deee$    ejF                  d:	      f   d ededdfd;       Z*ejC                  d<g d=      ejD                  dddddfded>ee+e    ejL                  d?	      f   ded@edAeee    ejF                  dB	      f   dCeee    ejF                  dD	      f   dEee$ ejF                  dF	      f   d eddfdG       Z,ejC                  ddHdIg      ddejD                  dfdedee ejL                  dJ	      f   d@ed eded!ee$ ejF                  dK	      f   ddfdL       Z-ejC                  d-dMg      dejD                  fdedee ejL                  dN	      f   d ededdf
dO       Z.ejC                  ddPdQg      dddejD                  fdedee ejL                  dR	      f   dSeee    ejF                  dTdUdV	      f   d@ed ededdfdW       Z/ejC                  dXdYg      dejD                  fded ededdfdZ       Z0ejC                  d-d[g      ddejD                  fdedee ejL                  d\	      f   d]ee$ ejF                  d^d_d`	      f   d ededdfda       Z1y)bae  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Optional)CLIErrorHfHubHTTPErrorRepositoryNotFoundErrorRevisionNotFoundError)ANSI   )
PrivateOpt	RepoIdArgRepoTypeRepoTypeOptRevisionOptTokenOpt
get_hf_apityper_factoryzManage repos on the Hub.)helpT)invoke_without_commandctxreturnc                     | j                   dk(  r/t        t        j                  d      t        j
                         y y )Nrepoz>FutureWarning: `hf repo` is deprecated in favor of `hf repos`.)file)	info_nameprintr	   yellowsysstderr)r   s    K/opt/pipecat/venv/lib/python3.12/site-packages/huggingface_hub/cli/repos.py_repos_callbackr    3   s/    
}}KKXY	
     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y)GatedChoicesautomanualfalseN)__name__
__module____qualname__r'   r(   r)    r!   r   r&   r&   B   s    DFEr!   r&   createzhf repos create my-modelz8hf repos create my-dataset --repo-type dataset --private)examplesFrepo_id	repo_type	space_sdkzEHugging Face Spaces SDK type. Required when --type is set to 'space'.private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.c           	          t        |      }|j                  | |j                  |||||      }t        dt	        j
                  |j                         d       t        dt	        j
                  |              y)zCreate a new repo on the Hub.r4   )r0   r1   r3   r4   r5   r6   r2   Successfully created  on the Hub.Your repo is now available at N)r   create_repovaluer   r	   boldr0   )	r0   r1   r2   r3   r4   r5   r6   apirepo_urls	            r   repo_createrA   H   sy    @ 5
!C//+  H 
!$))H,<,<"=!>l
KL	*499X+>*?
@Ar!   	duplicatez/hf repos duplicate openai/gdpval --type datasetzYhf repos duplicate multimodalart/dreambooth-training my-dreambooth --type space --privatefrom_idto_idz_Destination repo ID (e.g. `myorg/my-copy`). Defaults to your namespace with the same repo name.c                 $   t        |      }|j                  | ||j                  |||      }t        dt	        j
                  |        dt	        j
                  |j                         d       t        dt	        j
                  |              y)z7Duplicate a repo on the Hub (model, dataset, or Space).r8   )rC   rD   r1   r3   r4   r5   zSuccessfully duplicated  to r:   r;   N)r   duplicate_repor=   r   r	   r>   r0   )rC   rD   r1   r3   r4   r5   r?   r@   s           r   repo_duplicaterH   v   s    4 5
!C!!// " H 
$TYYw%7$8TYYxGWGW=X<YYe
fg	*499X+>*?
@Ar!   deletezhf repos delete my-model
missing_okz=If set to True, do not raise an error if repo does not exist.c                     t        |      }|j                  | |j                  |       t        dt	        j
                  |        d       y)z>Delete a repo from the Hub. This is an irreversible operation.r8   )r0   r1   rJ   Successfully deleted r:   N)r   delete_repor=   r   r	   r>   )r0   r1   r4   rJ   r?   s        r   repo_deleterN      sJ     5
!COO//  
 
!$))G"4!5\
BCr!   movez;hf repos move old-namespace/my-model new-namespace/my-modelc                     t        |      }|j                  | ||j                         t        dt	        j
                  |        dt	        j
                  |       d       y)z8Move a repository from a namespace to another namespace.r8   )rC   rD   r1   zSuccessfully moved rF   r:   N)r   	move_repor=   r   r	   r>   )rC   rD   r4   r1   r?   s        r   	repo_moverR      sZ     5
!CMM//  
 
		' 234		%8H7I
VWr!   settingsz$hf repos settings my-model --privatez'hf repos settings my-model --gated autogatedz$The gated status for the repository.z)Whether the repository should be private.c                     t        |      }|j                  | |r|j                  nd||j                         t        dt	        j
                  |        d       y)z$Update the settings of a repository.r8   N)r0   rT   r3   r1   z%Successfully updated the settings of r:   )r   update_repo_settingsr=   r   r	   r>   )r0   rT   r3   r4   r1   r?   s         r   repo_settingsrW      sW    2 5
!C#u{{//	   
1$))G2D1E\
RSr!   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                  || |j                  ||||      }	t        d|	 d       y)z$Delete files from a repo on the Hub.r8   )delete_patternsr0   r1   rY   rZ   r[   r\   z+Files correctly deleted from repo. Commit: .N)r   delete_filesr=   r   )
r0   rX   r1   rY   rZ   r[   r\   r4   r?   urls
             r   repo_delete_filesrb      sQ    N 5
!C


 //%-  C 
7uA
>?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                  | |||j                  |       t        dt	        j
                  |       d|j                   dt	        j
                  |               y)z*Create a new branch for a repo on the Hub.r8   )r0   r$   rY   r1   r5   r9    branch on  N)r   create_branchr=   r   r	   r>   )r0   r$   rY   r4   r1   r5   r?   s          r   branch_createrg     sp    4 5
!C//   
!$))F"3!4K	?PPQRVR[R[\cRdQe
fgr!   z#hf repos branch delete my-model devz!The name of the branch to delete.c           
          t        |      }|j                  | ||j                         t        dt	        j
                  |       d|j                   dt	        j
                  |               y)z'Delete a branch from a repo on the Hub.r8   )r0   r$   r1   rL   rd   re   N)r   delete_branchr=   r   r	   r>   )r0   r$   r4   r1   r?   s        r   branch_deleterj   @  sj     5
!C//  
 
!$))F"3!4K	?PPQRVR[R[\cRdQe
fgr!   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           
      P   |j                   }t        |      }t        dt        j                  |       d| dt        j                  |               	 |j                  | ||||       t        dt        j                  |       dt        j                  |               y# t        $ r%}t        |j                          d|  d      |d}~wt        $ r}t        d	| d      |d}~wt        $ r2}|j                  j                  d
k(  rt        d| d|  d      | d}~ww xY w)zCreate a tag for a repo.r8   zYou are about to create tag  on re   )r0   r"   tag_messagerY   r1    '' not found.Nz
Revision 'i  Tag 'z' already exists on ''.Tag z created on )r=   r   r   r	   r>   
create_tagr   r   
capitalizer   r   responsestatus_code)	r0   r"   rk   rY   r4   r1   repo_type_strr?   es	            r   
tag_createrz   V  s    8 OOM
5
!C	(3(8]O1TYYW^M_L`
ab	wCWxcpq 
D3 TYYw-?,@
AB # V-2245RyMNTUU  CH:\:;B ::!!S(U3%'<WIRHIqPs0   B" "	D%+ CD%C''D%3-D  D%listzhf repos tag list my-modelc                    |j                   }t        |      }	 |j                  | |      }t        |j                        dk(  r!t        d       t        j                  d      t        d	| d
t        j                  |        d       |j                  D ]  }t        |j                          y# t        $ r%}t	        |j                          d|  d      |d}~ww xY w)zList tags for a repo.r8   )r0   r1   ro   rp   Nr   zNo tags found)codez	Tags for re   :)r=   r   list_repo_refsr   r   ru   lentagsr   typerExitr	   r>   r#   )r0   r4   r1   rx   r?   refsry   ts           r   tag_listr     s     OOM
5
!CV!!']!K 499~ojja  	Im_Adii&8%9
;<YY aff # V-2245RyMNTUUVs   B2 2	C ; CC z!hf repos tag delete my-model v1.0zThe name of the tag to delete.yesz-yz--yesz"Answer Yes to prompt automaticallyc           
      \   |j                   }t        dt        j                  |       d| dt        j                  |               |s<t	        d      j                         }|dvrt        d       t        j                         t        |      }	 |j                  | ||       t        dt        j                  |       dt        j                  |               y# t        $ r%}t        |j                          d	|  d
      |d}~wt        $ r}t        d| d|  d      |d}~ww xY w)zDelete a tag for a repo.zYou are about to delete tag rm   re   zProceed? [Y/n] ) yr   Abortr8   )r0   r"   r1   ro   rp   Nrq   z' not found on 'rr   rs   z deleted on )r=   r   r	   r>   inputlowerr   r   r   
delete_tagr   r   ru   r   )	r0   r"   r   r4   r1   rx   choicer?   ry   s	            r   
tag_deleter     s   * OOM	(3(8]O1TYYW^M_L`
ab()//1))'N**,
5
!CHwC=I
 
D3 TYYw-?,@
AB	 # V-2245RyMNTUU  Hse#3G9B?@aGHs$   C 	D+' DD+D&&D+)2__doc__enumr   typingr   r   r   huggingface_hub.errorsr   r   r   r   huggingface_hub.utilsr	   
_cli_utilsr   r   r   r   r   r   r   r   	repos_clicallbackContextr    tag_cli
branch_cli	add_typerstrEnumr&   commandmodelOptionboolrA   ArgumentrH   rN   rR   rW   r{   rb   rg   rj   rz   r   r   r-   r!   r   <module>r      s    
 &  k k &	 	 	 9:	 40
 
4 
 1
 A
B HI
 	  G%  ( 	  JX  .3		  "B   &^^ 	 	 	-$B$B$B X	
	$B $B $B @	
	$B" ! C	
	#$B. 
/$B$BN 9c   	%^^ 	!BBr	
	B B B B @	
	B" 
#BB@ 8'A&BC &^^ 	DDD D P	
		D 
D DD* 6%b$cd %^^	XXX X 	X
 
X eX  .1   	 	%^^TT7	
	T <	
	T T T  
!TT8     &^^  	 	 	9)@)@S	k	
	)@ )@ )@ L	
	)@  ";	
	!)@, J	
	-)@8 9)@: 
;)@)@X -?   !%^^ 	!hh4	
	h h h h R	
	h" 
#hh< H(M'NO %^^hh4	
	h h h 
h Ph* 	+>  , 	 %^^%"C"C	1	
	
"C 8	
	"C  !"C" #"C$ %"C& 
'"C"CJ 	#?"@A %^^  
	 B( 	%H$IJ  	%^^#"C"C	1	
	
"C 
5	
	
"C  !"C" #"C$ 
%"C K"Cr!   