
    -:jJN              (       n   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	 ddl
mZmZmZmZ ddl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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( ddl)m*Z* ddl+m,Z,m-Z-  e&d      Z.e.j_                  d      dej`                  ddfd       Z1 G d de2ejf                        Z4 G d de2ejf                        Z5ee6dz   ejn                  dd      f   Z8ee6dz   ejn                  dd      f   Z9ee2dz   ejn                  dd e	e            f   Z:eedz   ejn                  d d!      f   Z;ee<dz   ejn                  d"d#      f   Z= e&d$      Z> e&d%      Z?e.j                  e>d&'       e.j                  e?d('       e.j                  d)g d*+      ddded,dfd-ee2dz   ejn                  d.      f   d/ee4dz   ejn                  d0d1d2      f   d3ed4ed5ee6 ejn                  d6d7      f   d8e ddfd9       ZBe.j                  d:g d;+      ej                  dddddd,ddddddddddfd<ed/ed=ee2dz   ejn                  d>      f   d?ed@e8dAe9d8e dBee6 ejn                  dC      f   dDee2dz   ejn                  dE      f   dFeedz   ejn                  dGdH      f   dIe:dJe;dKe=dLedMedNedOedPe!ddf&dQ       ZDe.j                  dRg dS+      dej                  ddddd,ddddddddfdTedUee2dz   ej                  dV      f   d/ed?ed@e8dAe9d8e dBee6 ejn                  dC      f   dIe:dJe;dKe=dLedMedNedOedPe!ddf"dW       ZFe.j                  dXdYg+      ej                  dd,d,fd<ed/ed8e dZee6 ejn                  d[      f   d\ee6 ejn                  d]d^d_      f   ddfd`       ZGe.j                  dadbg+      dej                  fdTedUed8e d/eddf
dc       ZHe.j                  ddg de+      dddddej                  fd<edfee5dz   ejn                  dg      f   d?ed@e8dAe9d8e d/eddfdh       ZIe.j                  dig dj+      ej                  dddd,dfd<edkeeJe2    ej                  dl      f   d/edmednee2dz   ejn                  do      f   dpee2dz   ejn                  dq      f   dree6 ejn                  ds      f   d8e ddfdt       ZK e.j                  dug dvw       e(dx             e?j                  d:dydzg+      ddej                  d,fd<ed(ee2 ej                  d{      f   dmed8e d/edBee6 ejn                  d|      f   ddfd}       ZLe?j                  dXd~g+      dej                  fd<ed(ee2 ej                  d      f   d8e d/eddf
d       ZMe>j                  d:ddg+      dddej                  fd<ed&ee2 ej                  d      f   dee2dz   ejn                  ddd      f   dmed8e d/eddfd       ZNe>j                  d)dg+      dej                  fd<ed8e d/eddfd       ZOe>j                  dXdg+      d,dej                  fd<ed&ee2 ej                  d      f   d\ee6 ejn                  d]d^d      f   d8e d/eddfd       ZPy)ae  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)
SoftChoice)CLIErrorHfHubHTTPErrorRepositoryNotFoundErrorRevisionNotFoundError)REPO_REGIONS   )run_city_game)REPO_LIST_DEFAULT_LIMIT
EnvFileOptEnvOptLimitOpt
PrivateOpt	RepoIdArgRepoTypeRepoTypeOptRevisionOpt	SearchOptSecretsFileOpt
SecretsOptTokenOpt
VolumesOptenv_map_to_key_value_list
get_hf_apiparse_env_mapparse_volumestyper_factory)make_cp)format_size)OutputFormatoutzManage repos on the Hub.)helpT)invoke_without_commandctxreturnc                 N    | j                   dk(  rt        j                  d       y y )Nrepoz/`hf repo` is deprecated in favor of `hf repos`.)	info_namer$   warning)r'   s    [/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/huggingface_hub/cli/repos.py_repos_callbackr.   C   s     
}}EF     c                       e Zd ZdZdZdZdZy)RepoTypeAllmodeldatasetspacebucketN)__name__
__module____qualname__r2   r3   r4   r5    r/   r-   r1   r1   I   s    EGEFr/   r1   c                       e Zd ZdZdZdZy)GatedChoicesautomanualfalseN)r6   r7   r8   r<   r=   r>   r9   r/   r-   r;   r;   P   s    DFEr/   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.)r%   
click_typez	--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.z"Manage tags for a repo on the Hub.z&Manage branches for a repo on the Hub.tag)namebranchz	list | ls)zhf repos lszhf repos ls --explorez,hf repos ls --namespace my-org --search bert)examplesF	namespacezKOrganization name. If not provided, lists repos for the authenticated user.	repo_typez--typez--repo-typez=Filter by repository type (model, dataset, space, or bucket).searchlimitexplorez	--explorez-Explore your repos as an interactive 3D city.tokenc                 F   t        |      }t        |j                  |             }|)|D cg c]  }|j                  |j                  k(  s|  }}|<|j                         }	|D cg c]!  }|	|j                  j                         v s |# }}t        |      }
|r8t        j                  t        j                  k(  rt        |       yt        d      |dkD  r|d| }|D cg c]e  }|j                  |j                  |j                  j                  d      |j                   t#        |j$                  d      |j&                  d	d
dg }}t        j(                  |dddd       |dkD  r#|
|kD  rt        j*                  d| d|
 d       yyyc c}w c c}w c c}w )zEList all repos (models, datasets, spaces, buckets) with storage info.rI   )rD   Nz5Repository exploration is only available in terminal.r   z%Y-%m-%dT)human_readablez.1f%)idtypeupdated
visibilitystorage
%_of_totalrN   right)rR   rS   )id_key
alignmentszShowing z of z$ repos. Use `--limit 0` to list all.)r   listlist_user_reposrO   valuelowerrN   lenr$   moder#   humanr   r   
updated_atstrftimerQ   r"   rR   storage_percenttablehint)rD   rE   rF   rG   rH   rI   apireposrsearch_lowertotalitemss               r-   	repo_listri      s   @ 5
!C$$y$9:E!?qQVVy%>??||~!Bq\QTTZZ\%ABBJE88|)))% NOOqyfu 
  $$FF||,,Z8,,"199TB..s315	

E 
 IIeDPW-XYqyUU]8E7$ug-QRS #y5 @ C
s   FF)!FF$A*F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 --protectedzqhf repos create my-space --type space --space-sdk gradio -v hf://org/my-model:/models -v hf://buckets/org/b:/dataz$hf repos create my-model --region usrepo_id	space_sdkzEHugging Face Spaces SDK type. Required when --type is set to 'space'.privatepublic	protected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.regionz--regionzbCloud region in which to create the repo. Can be one of 'us' or 'eu'. Requires Team plan or above.hardwarerR   
sleep_timesecretssecrets_fileenvenv_filevolumec                 :   t        |      }|j                  | |j                  |rdn	|rdn|rdnd||||	||
||t        t	        ||            t        t	        ||            t        |            }t        j                  d|j                  t        |             y)	zCreate a new repo on the Hub.rK   rm   rn   ro   N)rk   rE   rQ   rI   rp   rq   rr   rl   space_hardwarespace_storagespace_sleep_timespace_secretsspace_variablesspace_volumeszRepo created)rk   url)
r   create_reporY   r   r   r   r$   resultrk   str)rk   rE   rl   rm   rn   ro   rI   rp   rq   rr   rs   rR   rt   ru   rv   rw   rx   ry   rc   repo_urls                       r-   repo_creater      s    h 5
!C// '9XT][cg+#/g|0TU1-X2NO#F+  H  JJ~x'7'7S]Kr/   	duplicate)z/hf repos duplicate openai/gdpval --type datasetzzhf repos duplicate multimodalart/dreambooth-training my-dreambooth --type space --flavor l4x4 --secrets HF_TOKEN --privateznhf repos duplicate org/my-space my-space --type space -v hf://org/my-model:/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                 8   t        |      }|j                  | ||j                  |rdn	|rdn|rdnd||||	|
t        t	        ||            t        t	        ||            t        |            }t        j                  d| |j                  t        |             y)	z7Duplicate a repo on the Hub (model, dataset, or Space).rK   rm   rn   ro   N)r   r   rE   rQ   rI   rp   r{   r|   r}   r~   r   r   zRepo duplicated)r   r   r   )
r   duplicate_reporY   r   r   r   r$   r   rk   r   )r   r   rE   rm   rn   ro   rI   rp   rs   rR   rt   ru   rv   rw   rx   ry   rc   r   s                     r-   repo_duplicater     s    J 5
!C!!// '9XT][cg#/g|0TU1-X2NO#F+ " H JJ '9I9IsS[}]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	                  | |j                  |       t        j
                  d|        y	)
z>Delete a repo from the Hub. This is an irreversible operation.z$You are about to permanently delete  'z'. Proceed?r   rK   )rk   rE   r   zRepo deletedrk   N)r$   confirmrY   r   delete_repor   )rk   rE   rI   r   r   rc   s         r-   repo_deleter   E  sa    * KK6y6Gr'R]^dgh
5
!COO//  
 JJ~w/r/   movez;hf repos move old-namespace/my-model new-namespace/my-modelc                     t        |      }|j                  | ||j                         t        j                  d| |       y)z8Move a repository from a namespace to another namespace.rK   )r   r   rE   z
Repo moved)r   r   N)r   	move_reporY   r$   r   )r   r   rI   rE   rc   s        r-   	repo_mover   d  s>     5
!CMM//  
 JJ|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        |      }|j                  | |dn|t        j                  u rdn|j                  |rdn	|rdn|rdnd|j                         t        j                  d| 	       y)
z$Update the settings of a repository.rK   NFrm   rn   ro   )rk   r   rQ   rE   zRepo settings updatedr   )r   update_repo_settingsr;   r>   rY   r$   r   )rk   r   rm   rn   ro   rI   rE   rc   s           r-   repo_settingsr   u  sl    . 5
!C}t5L<N<N3N%TYT_T_ '9XT][cg//	   JJ&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                  || |j                  ||||      }	t        j                  d| |	       y)z$Delete files from a repo on the Hub.rK   )delete_patternsrk   rE   r   r   r   r   zFiles deleted)rk   
commit_urlN)r   delete_filesrY   r$   r   )
rk   r   rE   r   r   r   r   rI   rc   r   s
             r-   repo_delete_filesr     sO    N 5
!C


 //%-  C JJC@r/   cp)	z:hf repos cp hf://username/my-model/config.json config.jsonz<hf repos cp hf://datasets/username/my-dataset/data.csv data/z0hf repos cp hf://username/my-model/config.json -zFhf repos cp model.safetensors hf://username/my-model/model.safetensorsz4hf repos cp config.json hf://username/my-model/logs/z0hf repos cp - hf://username/my-model/config.jsonzWhf repos cp hf://username/source-model/config.json hf://username/dest-model/config.jsonzghf repos cp hf://datasets/username/my-dataset/processed/ hf://datasets/username/dest-dataset/processed/zJhf repos cp hf://username/my-model/logs/ hf://username/archive-model/logs/)rA   rC   rd   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        j                  d||j                  |        y)z*Create a new branch for a repo on the Hub.rK   )rk   rB   r   rE   rp   zBranch createdrB   rE   rk   N)r   create_branchrY   r$   r   )rk   rB   r   rI   rE   rp   rc   s          r-   branch_creater     sN    4 5
!C//   JJ)//SZ[r/   z#hf repos branch delete my-model devz!The name of the branch to delete.c                     t        |      }|j                  | ||j                         t        j                  d||j                  |        y)z'Delete a branch from a repo on the Hub.rK   )rk   rB   rE   zBranch deletedr   N)r   delete_branchrY   r$   r   )rk   rB   rI   rE   rc   s        r-   branch_deleter     sH     5
!C//  
 JJ)//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        |      }	 |j                  | ||||       t        j                  d|||        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.rK   )rk   r@   tag_messager   rE   r   ' not found.Nz
Revision 'i  Tag 'z' already exists on ''.zTag createdr@   rE   rk   )rY   r   
create_tagr	   r   
capitalizer
   r   responsestatus_coder$   r   )	rk   r@   r   r   rI   rE   repo_type_strrc   es	            r-   
tag_creater     s    8 OOM
5
!C	wCWxcpq JJ}#P # V-2245RyMNTUU  CH:\:;B ::!!S(U3%'<WIRHIqPs/   A
 
	C A33C?BC-CCzhf repos tag list my-modelc                 h   |j                   }t        |      }	 |j                  | |      }|j                  D cg c]&  }|j                  |j                  |j                  d( }}t        j                  |       y# t        $ r%}t	        |j                          d|  d      |d}~ww xY wc c}w )zList tags for a repo.rK   )rk   rE   r   r   N)rA   target_commitref)rY   r   list_repo_refsr	   r   r   tagsrA   r   r   r$   ra   )	rk   rI   rE   r   rc   refsr   trh   s	            r-   tag_listr   D  s     OOM
5
!CV!!']!K X\W`W`aRSaffqquuMaEaIIe # V-2245RyMNTUUVas   A> +B/>	B, B''B,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	        |      }	 |j                  | ||       t        j                  d|||        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 z on  zProceed?r   rK   )rk   r@   rE   r   r   Nr   z' not found on 'r   zTag deletedr   )rY   r$   textr   r   
delete_tagr	   r   r   r
   r   )rk   r@   r   rI   rE   r   rc   r   s           r-   
tag_deleter   U  s    * OOMHH+C5]O1WINOKK
$
5
!CHwC=I
 JJ}#P	 # V-2245RyMNTUU  Hse#3G9B?@aGHs$   A= =	C
 B&&C
2CC
)Q__doc__enumtypingr   typerhuggingface_hubr   r   huggingface_hub.cli._cli_utilsr   huggingface_hub.errorsr   r   r	   r
   huggingface_hub.hf_apir   
_city_gamer   
_cli_utilsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    _cpr!   _file_listingr"   _outputr#   r$   	repos_clicallbackContextr.   r   Enumr1   r;   boolOption	PublicOptProtectedOptSpaceHardwareOptSpaceStorageOptintSpaceSleepTimeOpttag_cli
branch_cli	add_typercommandri   r2   r   Argumentr   r   r   r   rW   r   r   r   r   r   r   r9   r/   r-   <module>r      sv      7 5 k k / %     *  & & 9:	 40G G4 G 1G
#tyy 3		  4KELLS	 4KELLe $JELL^m,  4ELL A $JELLj  A
B HI
 	  G%  ( 	  JX  .    	 	- 	+6Td
^	
	6T dP	
	6T 6T  !6T" ['VW	Y#6T* +6T, 
-6T6Tr   	 &^^ 	" 	 	 	!%#$(#'O;L;L;L d
X	
	;L ;L ;L ;L ;L @	
	;L& !d
 C	
	';L2 tu	
	3;L@ A;LB C;LD "E;LF G;LH !I;LJ 
K;LL M;LN O;LP 
Q;L	;L|    	%^^" 	!%#$(#'5,^,^d
r	
	,^ ,^ ,^ ,^ ,^ ,^ @	
	,^& ',^( ),^* "+,^, -,^. !/,^0 
1,^2 3,^4 5,^6 
7,^,^^ 8'A&BC &^^ 	 	#000 0 P	
		0 
6	
	
0$ 
%0 D0< 6%b$cd %^^	;;; ; 	;
 
; e;     	"%^^99t7	
	9 9 9 9 9 9 
992     &^^  	 	 	9)A)AS	k	
	)A )A )A d
L	
	)A  "d
;	
	!)A, J	
	-)A8 9)A: 
;)A)AZ	  	    
'!& -?   !%^^ 	!\\4	
	\ \ \ \ R	
	\" 
#\\< H(M'NO %^^\\4	
	\ \ \ 
\ P\* 	+>  , 	 %^^%!Q!Q	1	
	
!Q d
8	
	!Q  !!Q" #!Q$ %!Q& 
'!Q!QH 	(D'EF %^^  
	 G  	%H$IJ  	%^^#QQ	1	
	
Q 
5	
	
Q  !Q" #Q$ 
%Q KQr/   