
    ^jN              *       x   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- ddl.m/Z/m0Z0  e&d      Z1e1je                  d      dejf                  ddfd       Z4 G d de5ejl                        Z7 G d de5ejl                        Z8ee9dz   e-dd      f   Z:ee9dz   e-dd      f   Z;ee5dz   e-dd e	e             f   Z<eedz   e-d!d"      f   Z=ee>dz   e-d#d$      f   Z? e&d%      Z@ e&d&      ZAe1j                  e@d'(       e1j                  eAd)(       e1j                  d*g d+,      ddded-dfd.ee5dz   e-d/      f   d0ee7dz   e-d1d2d3      f   d4ed5ed6ee9 e-d7d8      f   d9e ddfd:       ZDe1j                  d;g d<,      ej                  ddddddd-ddddddddddfd=ed0ed>ee5dz   e-d?d@dA      f   dBee5dz   e-dCdD      f   dEedFe:dGe;d9e dHee9 e-dI      f   dJee5dz   e-dK      f   dLeedz   e-dMdN      f   dOe<dPe=dQe?dRedSedTedUedVe!ddf(dW       ZFe1j                  dXg dY,      dej                  ddddd-ddddddddfdZed[ee5dz   e,d\      f   d0edEedFe:dGe;d9e dHee9 e-dI      f   dOe<dPe=dQe?dRedSedTedUedVe!ddf"d]       ZGe1j                  d^d_g,      ej                  dd-d-fd=ed0ed9e d`ee9 e-da      f   dbee9 e-dcddde      f   ddfdf       ZHe1j                  dgdhg,      dej                  fdZed[ed9e d0eddf
di       ZIe1j                  djg dk,      dddddej                  fd=edlee8dz   e-dm      f   dEedFe:dGe;d9e d0eddfdn       ZJe1j                  dog dp,      ej                  dddd-dfd=edqeeKe5    e,dr      f   d0edsedtee5dz   e-du      f   dvee5dz   e-dw      f   dxee9 e-dy      f   d9e ddfdz       ZL e1j                  d{g d|}       e(d~             eAj                  d;ddg,      ddej                  d-fd=ed)ee5 e,d      f   dsed9e d0edHee9 e-d      f   ddfd       ZMeAj                  d^dg,      dej                  fd=ed)ee5 e,d      f   d9e d0eddf
d       ZNe@j                  d;ddg,      dddej                  fd=ed'ee5 e,d      f   dee5dz   e-ddd      f   dsed9e d0eddfd       ZOe@j                  d*dg,      dej                  fd=ed9e d0eddfd       ZPe@j                  d^dg,      d-dej                  fd=ed'ee5 e,d      f   dbee9 e-dcddd      f   d9e d0eddfd       ZQy)zHContains commands to interact with repositories on the Hugging Face Hub.    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)ArgumentOption)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    d/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/huggingface_hub/cli/repos.py_repos_callbackr0   9   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__r4   r5   r6   r7    r1   r/   r3   r3   ?   s    EGEFr1   r3   c                       e Zd ZdZdZdZy)GatedChoicesautomanualfalseN)r8   r9   r:   r>   r?   r@   r;   r1   r/   r=   r=   F   s    DFEr1   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.rK   )rF   Nz5Repository exploration is only available in terminal.r   z%Y-%m-%dT)human_readablez.1f%)idtypeupdated
visibilitystorage
%_of_totalrP   right)rT   rU   )id_key
alignmentszShowing z of z$ repos. Use `--limit 0` to list all.)r   listlist_user_reposrQ   valuelowerrP   lenr&   moder%   humanr   r   
updated_atstrftimerS   r"   rT   storage_percenttablehint)rF   rG   rH   rI   rJ   rK   apireposrsearch_lowertotalitemss               r/   	repo_listrk   {   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 --privatezrhf repos create my-space --type space --sdk gradio --flavor t4-medium --secrets HF_TOKEN -e THEME=dark --protectedzOhf repos create my-jupyterlab --type space --template SpacesExamples/jupyterlabzkhf repos create my-space --type space --sdk gradio -v hf://org/my-model:/models -v hf://buckets/org/b:/dataz$hf repos create my-model --region usrepo_idsdkz--sdkz--space-sdkzEHugging Face Spaces SDK type. Required when --type is set to 'space'.templatez
--templatezCreate a Space from an official template. Pass a template repo id (e.g. 'SpacesExamples/jupyterlab') or its short name (e.g. 'JupyterLab'). List available templates with `hf spaces templates`. Spaces only.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.hardwarerT   
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.rM   rp   rq   rr   N)rm   rG   rS   rK   rs   rt   ru   	space_sdkspace_hardwarespace_storagespace_sleep_timespace_secretsspace_variablesspace_volumesspace_templatezRepo created)rm   url)
r   create_repor[   r   r   r   r&   resultrm   str)rm   rG   rn   ro   rp   rq   rr   rK   rs   rt   ru   rv   rT   rw   rx   ry   rz   r{   r|   re   repo_urls                        r/   repo_creater      s    D 5
!C// '9XT][cg+#/g|0TU1-X2NO#F+  H" JJ~x'7'7S]Kr1   	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).rM   rp   rq   rr   N)r   r   rG   rS   rK   rs   r   r   r   r   r   r   zRepo duplicated)r   r   r   )
r   duplicate_repor[   r   r   r   r&   r   rm   r   )r   r   rG   rp   rq   rr   rK   rs   rv   rT   rw   rx   ry   rz   r{   r|   re   r   s                     r/   repo_duplicater     s    J 5
!C!!// '9XT][cg#/g|0TU1-X2NO#F+ " H JJ '9I9IsS[}]r1   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   rM   )rm   rG   r   zRepo deletedrm   N)r&   confirmr[   r   delete_repor   )rm   rG   rK   r   r   re   s         r/   repo_deleter   J  sa    * KK6y6Gr'R]^dgh
5
!COO//  
 JJ~w/r1   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.rM   )r   r   rG   z
Repo moved)r   r   N)r   	move_repor[   r&   r   )r   r   rK   rG   re   s        r/   	repo_mover   i  s>     5
!CMM//  
 JJ|WE:r1   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.rM   NFrp   rq   rr   )rm   r   rS   rG   zRepo settings updatedr   )r   update_repo_settingsr=   r@   r[   r&   r   )rm   r   rp   rq   rr   rK   rG   re   s           r/   repo_settingsr   z  sl    . 5
!C}t5L<N<N3N%TYT_T_ '9XT][cg//	   JJ&8r1   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.rM   )delete_patternsrm   rG   r   r   r   r   zFiles deleted)rm   
commit_urlN)r   delete_filesr[   r&   r   )
rm   r   rG   r   r   r   r   rK   re   r   s
             r/   repo_delete_filesr     sO    N 5
!C


 //%-  C JJC@r1   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/)rC   rE   rf   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.rM   )rm   rD   r   rG   rs   zBranch createdrD   rG   rm   N)r   create_branchr[   r&   r   )rm   rD   r   rK   rG   rs   re   s          r/   branch_creater     sN    4 5
!C//   JJ)//SZ[r1   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.rM   )rm   rD   rG   zBranch deletedr   N)r   delete_branchr[   r&   r   )rm   rD   rK   rG   re   s        r/   branch_deleter     sH     5
!C//  
 JJ)//SZ[r1   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.rM   )rm   rB   tag_messager   rG   r   ' not found.Nz
Revision 'i  Tag 'z' already exists on ''.zTag createdrB   rG   rm   )r[   r   
create_tagr	   r   
capitalizer
   r   responsestatus_coder&   r   )	rm   rB   r   r   rK   rG   repo_type_strre   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.rM   )rm   rG   r   r   N)rC   target_commitref)r[   r   list_repo_refsr	   r   r   tagsrC   r   r   r&   rc   )	rm   rK   rG   r   re   refsr   trj   s	            r/   tag_listr   I  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   rM   )rm   rB   rG   r   r   Nr   z' not found on 'r   zTag deletedr   )r[   r&   textr   r   
delete_tagr	   r   r   r
   r   )rm   rB   r   rK   rG   r   re   r   s           r/   
tag_deleter   Z  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
)R__doc__enumtypingr   click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"   
_frameworkr#   r$   _outputr%   r&   	repos_cligroup_callbackContextr0   r   Enumr3   r=   bool	PublicOptProtectedOptSpaceHardwareOptSpaceStorageOptintSpaceSleepTimeOpttag_cli
branch_cli	add_groupcommandrk   r4   r   r   r   r   r   rY   r   r   r   r   r   r   r;   r1   r/   <module>r      s!   O    7 5 k k / %     *  & ( & 9:	 6G G4 G 7G
#tyy 3		  4K
S	 4K
e $J
^m,  4
 A $J
j  A
B HI
 	  G%  ( 	  JX  .    	 	- 	+6Td
^	
	6T dP	
	6T 6T  !6T" {!PQ	S#6T* +6T, 
-6T6Tr   
 &^^ 	 	" 	 	 	!%#$(#'iILILIL 
d
X	
	
IL d
6	
	
IL, -IL. /IL0 1IL2 3IL4 @	
	5IL@ !d
 C	
	AILL tu	
	MILZ [IL\ ]IL^ "_IL` aILb !cILd 
eILf gILh iILj 
kIL
ILX    	%^^" 	!%#$(#'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r1   