§
    «˜ºhP)  ã                   óN  — d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZmZ dd	lmZmZmZ dd
lmZ ddlmZ  ej        e¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )a  Contains commands to interact with repositories on the Hugging Face Hub.

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

    # create a private model repo on the Hub
    hf repo create my-cool-model --private
é    N)Ú_SubParsersAction)ÚOptional)Ú	HTTPError)ÚBaseHuggingfaceCLICommand)ÚANSI)Ú
REPO_TYPESÚSPACES_SDK_TYPES)ÚHfHubHTTPErrorÚRepositoryNotFoundErrorÚRevisionNotFoundError)ÚHfApi)Úloggingc                   ó*   — e Zd Zedefd„¦   «         ZdS )ÚRepoCommandsÚparserc                 ó
  ‡— |                       dd¬¦  «        Š‰                     d¬¦  «        }‰                     ˆfd„¬¦  «         |                      dd¬¦  «        }|                     d	t          d
¬¦  «         |                     dt          d¬¦  «         |                     dt          dt
          ¬¦  «         |                     ddd¬¦  «         |                     dt          d¬¦  «         |                     ddd¬¦  «         |                     dt          d¬¦  «         |                     d„ ¬¦  «         |                      dd¬¦  «        }|                     ddd ¬!¦  «        }|                      dd"¬¦  «        }|                     d	t          d#¬¦  «         |                     dt          d$¬¦  «         |                     d%d&t          d'¬¦  «         |                     d(t          d)¬¦  «         |                     dt          d*¬¦  «         |                     dg d+¢d,d-¬.¦  «         |                     d/„ ¬¦  «         |                      d0d1¬¦  «        }|                     d	t          d2¬¦  «         |                     dt          d*¬¦  «         |                     dg d+¢d,d-¬.¦  «         |                     d3„ ¬¦  «         |                      d4d5¬¦  «        }|                     d	t          d6¬¦  «         |                     dt          d7¬¦  «         |                     d8d9dd:¬¦  «         |                     dt          d*¬¦  «         |                     dg d+¢d,d-¬.¦  «         |                     d;„ ¬¦  «         d S )<NÚrepozManage repos on the Hub.)Úhelpz%huggingface.co repos related commandsc                 ó,   •— ‰                      ¦   «         S ©N)Ú
print_help)ÚargsÚrepo_parsers    €ú`/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/huggingface_hub/cli/repo.pyú<lambda>z2RepoCommands.register_subcommand.<locals>.<lambda>0   s   ø€ °;×3IÒ3IÑ3KÔ3K€ ó    )ÚfuncÚcreatez#Create a new repo on huggingface.coÚrepo_idz‡The ID of the repo to create to (e.g. `username/repo-name`). The username is optional and will be set to your username if not provided.)Útyper   z--repo-typezWOptional: set to "dataset" or "space" if creating a dataset or space, default is model.z--space_sdkzOOptional: Hugging Face Spaces SDK type. Required when --type is set to "space".)r    r   Úchoicesz	--privateÚ
store_truezhWhether to create a private repository. Defaults to public unless the organization's default is private.)Úactionr   z--tokenzLHugging Face token. Will default to the locally saved token if not provided.z
--exist-okz-Do not raise an error if repo already exists.z--resource-group-idzoResource group in which to create the repo. Resource groups is only available for Enterprise Hub organizations.c                 ó    — t          | ¦  «        S r   )ÚRepoCreateCommand©r   s    r   r   z2RepoCommands.register_subcommand.<locals>.<lambda>X   s   € Õ:KÈDÑ:QÔ:Q€ r   Útagz"Manage tags for a repo on the Hub.zTag actionsÚ
tag_actionT)r   ÚdestÚrequiredzCreate a tag for a repo.z6The ID of the repo to tag (e.g. `username/repo-name`).zThe name of the tag to create.z-mz	--messagez%The description of the tag to create.z
--revisionzThe git revision to tag.zJA User Access Token generated from https://huggingface.co/settings/tokens.)ÚmodelÚdatasetÚspacer+   z6Set the type of repository (model, dataset, or space).)r!   Údefaultr   c                 ó    — t          | ¦  «        S r   )ÚRepoTagCreateCommandr&   s    r   r   z2RepoCommands.register_subcommand.<locals>.<lambda>o   ó   € Õ9MÈdÑ9SÔ9S€ r   ÚlistzList tags for a repo.z@The ID of the repo to list tags for (e.g. `username/repo-name`).c                 ó    — t          | ¦  «        S r   )ÚRepoTagListCommandr&   s    r   r   z2RepoCommands.register_subcommand.<locals>.<lambda>   s   € Õ7IÈ$Ñ7OÔ7O€ r   ÚdeletezDelete a tag from a repo.zFThe ID of the repo to delete the tag from (e.g. `username/repo-name`).zThe name of the tag to delete.z-yz--yesz$Answer Yes to prompts automatically.c                 ó    — t          | ¦  «        S r   )ÚRepoTagDeleteCommandr&   s    r   r   z2RepoCommands.register_subcommand.<locals>.<lambda>‘   r1   r   )Ú
add_parserÚadd_subparsersÚset_defaultsÚadd_argumentÚstrr	   )	r   Úrepo_subparsersÚrepo_create_parserÚrepo_tag_parserÚtag_subparsersÚtag_create_parserÚtag_list_parserÚtag_delete_parserr   s	           @r   Úregister_subcommandz RepoCommands.register_subcommand*   sœ  ø€ à×'Ò'¨Ð5OÐ'ÑPÔPˆØ%×4Ò4Ð:aÐ4ÑbÔbˆð 	× Ò Ð&KÐ&KÐ&KÐ&KÐ ÑLÔLÐLð -×7Ò7¸ÐGlÐ7ÑmÔmÐØ×'Ò'ØÝð [ð 	(ñ 	
ô 	
ð 	
ð
 	×'Ò'ØÝØjð 	(ñ 	
ô 	
ð 	
ð
 	×'Ò'ØÝØbÝ$ð	 	(ñ 	
ô 	
ð 	
ð 	×'Ò'ØØØ{ð 	(ñ 	
ô 	
ð 	
ð
 	×'Ò'ØÝØ_ð 	(ñ 	
ô 	
ð 	
ð
 	×'Ò'ØØØ@ð 	(ñ 	
ô 	
ð 	
ð
 	×'Ò'Ø!Ýð Cð 	(ñ 	
ô 	
ð 	
ð
 	×'Ò'Ð-QÐ-QÐ'ÑRÔRÐRð *×4Ò4°UÐAeÐ4ÑfÔfˆØ(×7Ò7¸]ÐQ]ÐhlÐ7ÑmÔmˆð +×5Ò5°hÐE_Ð5Ñ`Ô`ÐØ×&Ò&Ø�CÐ&^ð 	'ñ 	
ô 	
ð 	
ð 	×&Ò& uµ3Ð=]Ð&Ñ^Ô^Ð^Ø×&Ò& t¨[½sÐIpÐ&ÑqÔqÐqØ×&Ò& |½#ÐD^Ð&Ñ_Ô_Ð_Ø×&Ò&Ø�CÐ&rð 	'ñ 	
ô 	
ð 	
ð 	×&Ò&ØØ1Ð1Ð1ØØIð	 	'ñ 	
ô 	
ð 	
ð 	×&Ò&Ð,SÐ,SÐ&ÑTÔTÐTð )×3Ò3°FÐAXÐ3ÑYÔYˆØ×$Ò$Ø�CÐ&hð 	%ñ 	
ô 	
ð 	
ð 	×$Ò$Ø�CÐ&rð 	%ñ 	
ô 	
ð 	
ð 	×$Ò$ØØ1Ð1Ð1ØØIð	 	%ñ 	
ô 	
ð 	
ð 	×$Ò$Ð*OÐ*OÐ$ÑPÔPÐPð +×5Ò5°hÐE`Ð5ÑaÔaÐØ×&Ò&Ø�CÐ&nð 	'ñ 	
ô 	
ð 	
ð 	×&Ò& uµ3Ð=]Ð&Ñ^Ô^Ð^Ø×&Ò& t¨W¸\ÐPvÐ&ÑwÔwÐwØ×&Ò&Ø�CÐ&rð 	'ñ 	
ô 	
ð 	
ð 	×&Ò&ØØ1Ð1Ð1ØØIð	 	'ñ 	
ô 	
ð 	
ð 	×&Ò&Ð,SÐ,SÐ&ÑTÔTÐTÐTÐTr   N)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   rD   © r   r   r   r   )   sH   € € € € € ØðfUÐ$5ð fUð fUð fUñ „\ðfUð fUð fUr   r   c                   ó*   — e Zd Zdej        fd„Zd„ ZdS )r%   r   c                 óÔ   — |j         | _         |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        t          ¦   «         | _        d S r   )	r   Ú	repo_typeÚ	space_sdkÚprivateÚtokenÚexist_okÚresource_group_idr   Ú_api©Úselfr   s     r   Ú__init__zRepoCreateCommand.__init__•   sR   € Ø œLˆŒØ(,¬ˆŒØ(,¬ˆŒØ!œ\ˆŒØ$(¤JˆŒ
Ø"œmˆŒØ04Ô0FˆÔÝ‘G”GˆŒ	ˆ	ˆ	r   c           	      ó*  — | j                              | j        | j        | j        | j        | j        | j        | j        ¬¦  «        }t          dt          j        |j        ¦  «        › d�¦  «         t          dt          j        |¦  «        › �¦  «         d S )N)r   rL   rN   rO   rP   rQ   rM   zSuccessfully created z on the Hub.zYour repo is now available at )rR   Úcreate_repor   rL   rN   rO   rP   rQ   rM   Úprintr   Úbold)rT   Úrepo_urls     r   ÚrunzRepoCreateCommand.runŸ   s’   € Ø”9×(Ò(Ø”LØ”nØ”LØ”*Ø”]Ø"Ô4Ø”nð )ñ 
ô 
ˆõ 	ÐO¥d¤i°Ô0@Ñ&AÔ&AÐOÐOÐOÑPÔPÐPÝÐD­t¬y¸Ñ/BÔ/BÐDÐDÑEÔEÐEÐEÐEr   N)rE   rF   rG   ÚargparseÚ	NamespacerU   r[   rI   r   r   r%   r%   ”   sF   € € € € € ð˜XÔ/ð ð ð ð ðFð Fð Fð Fð Fr   r%   c                   ó   — e Zd Zd„ ZdS )ÚRepoTagCommandc                 óü   — || _         t          t          |dd ¦  «        ¬¦  «        | _        |j        | _        t          |dd¦  «        | _        | j        t          vr t          d¦  «         t          d¦  «         d S d S )NrO   )rO   rL   r+   zInvalid repo --repo-typeé   )	r   r   ÚgetattrÚapir   rL   r   rX   ÚexitrS   s     r   rU   zRepoTagCommand.__init__®   sv   € ØˆŒ	Ý�w t¨W°dÑ;Ô;Ð<Ñ<Ô<ˆŒØ”|ˆŒÝ   {°GÑ<Ô<ˆŒØŒ>¥Ð+Ð+ÝÐ,Ñ-Ô-Ð-Ý�‰GŒGˆGˆGˆGð ,Ð+r   N)rE   rF   rG   rU   rI   r   r   r_   r_   ­   s#   € € € € € ðð ð ð ð r   r_   c                   ó   — e Zd Zd„ ZdS )r0   c                 óH  — t          dt          j        | j        j        ¦  «        › d| j        › dt          j        | j        ¦  «        › �¦  «         	 | j                             | j        | j        j        t          | j        dd ¦  «        t          | j        dd ¦  «        | j        ¬¦  «         �n+# t          $ rU t          | j                             ¦   «         › dt          j        | j        ¦  «        › d�¦  «         t          d¦  «         Y nÍt          $ rK t          d	t          j        t          | j        dd ¦  «        ¦  «        › d�¦  «         t          d¦  «         Y nzt          $ rn}|j        j        d
k    rWt          dt          j        | j        j        ¦  «        › dt          j        | j        ¦  «        › �¦  «         t          d¦  «         |‚d }~ww xY wt          dt          j        | j        j        ¦  «        › dt          j        | j        ¦  «        › �¦  «         d S )NzYou are about to create tag ú on ú ÚmessageÚrevision)r   r'   Útag_messagerj   rL   ú not found.ra   z	Revision i™  úTag z already exists on z created on )rX   r   rY   r   r'   rL   r   rc   Ú
create_tagrb   r   Ú
capitalizerd   r   r
   ÚresponseÚstatus_code)rT   Úes     r   r[   zRepoTagCreateCommand.run¹   s  € ÝÐu­T¬Y°t´y´}Ñ-EÔ-EÐuÐuÈ4Ì>ÐuÐuÕ\`Ô\eÐfjÔfrÑ\sÔ\sÐuÐuÑvÔvÐvð	ØŒH×ÒØœØ”I”MÝ# D¤I¨y¸$Ñ?Ô?Ý  ¤¨J¸Ñ=Ô=Øœ.ð  ñ ô ð ñ øõ 'ð 	ð 	ð 	Ý�T”^×.Ò.Ñ0Ô0ÐWÐWµ4´9¸T¼\Ñ3JÔ3JÐWÐWÐWÑXÔXÐXÝ�‰GŒGˆGˆGˆGÝ$ð 	ð 	ð 	ÝÐZ�dœi­°´	¸:ÀtÑ(LÔ(LÑMÔMÐZÐZÐZÑ[Ô[Ð[Ý�‰GŒGˆGˆGˆGÝð 	ð 	ð 	ØŒzÔ%¨Ò,Ð,ÝÐc�TœY t¤y¤}Ñ5Ô5ÐcÐcÍ$Ì)ÐTXÔT`ÑJaÔJaÐcÐcÑdÔdÐdÝ�Q‘”�ØˆGøøøøð		øøøõ
 	ÐT•T”Y˜tœyœ}Ñ-Ô-ÐTÐT½4¼9ÀTÄ\Ñ;RÔ;RÐTÐTÑUÔUÐUÐUÐUs(   ÁAB/ Â/AGÄAGÅ 	GÅ)A)GÇGN©rE   rF   rG   r[   rI   r   r   r0   r0   ¸   s(   € € € € € ðVð Vð Vð Vð Vr   r0   c                   ó   — e Zd Zd„ ZdS )r4   c                 óÜ  — 	 | j                              | j        | j        ¬¦  «        }n½# t          $ rU t          | j                             ¦   «         › dt          j        | j        ¦  «        › d�¦  «         t          d¦  «         Y n_t          $ rS}t          |¦  «         t          t          j        |j        j        ¦  «        ¦  «         t          d¦  «         Y d }~nd }~ww xY wt          |j        ¦  «        dk    rt          d¦  «         t          d¦  «         t          d| j        › dt          j        | j        ¦  «        › d�¦  «         |j        D ]}t          |j        ¦  «         Œd S )	N)r   rL   rh   rl   ra   r   zNo tags foundz	Tags for ú:)rc   Úlist_repo_refsr   rL   r   rX   ro   r   rY   rd   r   Úredrp   ÚtextÚlenÚtagsÚname)rT   Úrefsrr   r'   s       r   r[   zRepoTagListCommand.runÒ   sn  € ð	Ø”8×*Ò*ØœØœ.ð +ñ ô ˆDˆDøõ 'ð 	ð 	ð 	Ý�T”^×.Ò.Ñ0Ô0ÐWÐWµ4´9¸T¼\Ñ3JÔ3JÐWÐWÐWÑXÔXÐXÝ�‰GŒGˆGˆGˆGÝð 	ð 	ð 	Ý�!‰HŒHˆHÝ•$”(˜1œ:œ?Ñ+Ô+Ñ,Ô,Ð,Ý�‰GŒGˆGˆGˆGˆGˆGˆGøøøøð	øøøõ ˆtŒy‰>Œ>˜QÒÐÝ�/Ñ"Ô"Ð"Ý�‰GŒGˆGÝÐE˜$œ.ÐEÐE­4¬9°T´\Ñ+BÔ+BÐEÐEÐEÑFÔFÐFØ”9ð 	ð 	ˆCÝ�#”(‰OŒOˆOˆOð	ð 	s   ‚&) ©AC#Â	C#ÂA	CÃC#Nrs   rI   r   r   r4   r4   Ñ   s#   € € € € € ðð ð ð ð r   r4   c                   ó   — e Zd Zd„ ZdS )r7   c           
      óÔ  — t          dt          j        | j        j        ¦  «        › d| j        › dt          j        | j        ¦  «        › �¦  «         t          | j        dd¦  «        sBt          d¦  «         	                    ¦   «         }|dvrt          d¦  «         t          ¦   «          	 | j                             | j        | j        j        | j        ¬	¦  «         nÄ# t          $ rU t          | j                             ¦   «         › dt          j        | j        ¦  «        › d
�¦  «         t          d¦  «         Y nft          $ rZ t          dt          j        | j        j        ¦  «        › dt          j        | j        ¦  «        › �¦  «         t          d¦  «         Y nw xY wt          dt          j        | j        j        ¦  «        › dt          j        | j        ¦  «        › �¦  «         d S )NzYou are about to delete tag rg   rh   ÚyesFzProceed? [Y/n] )Ú Úyr€   ÚAbort)r   r'   rL   rl   ra   rm   z not found on z deleted on )rX   r   rY   r   r'   rL   r   rb   ÚinputÚlowerrd   rc   Ú
delete_tagr   ro   r   )rT   Úchoices     r   r[   zRepoTagDeleteCommand.runè   sÆ  € ÝÐu­T¬Y°t´y´}Ñ-EÔ-EÐuÐuÈ4Ì>ÐuÐuÕ\`Ô\eÐfjÔfrÑ\sÔ\sÐuÐuÑvÔvÐvÝ�t”y %¨Ñ/Ô/ð 	ÝÐ,Ñ-Ô-×3Ò3Ñ5Ô5ˆFØÐ-Ð-Ð-Ý�g‘”�Ý‘”�ð	ØŒH×Ò¨¬¸$¼)¼-ÐSWÔSaÐÑbÔbÐbÐbøÝ&ð 	ð 	ð 	Ý�T”^×.Ò.Ñ0Ô0ÐWÐWµ4´9¸T¼\Ñ3JÔ3JÐWÐWÐWÑXÔXÐXÝ�‰GŒGˆGˆGˆGÝ$ð 	ð 	ð 	ÝÐZ�œ 4¤9¤=Ñ1Ô1ÐZÐZÅÄÈ4Ì<ÑAXÔAXÐZÐZÑ[Ô[Ð[Ý�‰GŒGˆGˆGˆGð	øøøõ 	ÐT•T”Y˜tœyœ}Ñ-Ô-ÐTÐT½4¼9ÀTÄ\Ñ;RÔ;RÐTÐTÑUÔUÐUÐUÐUs   Â*1C ÃAFÄ:A FÆFNrs   rI   r   r   r7   r7   ç   s(   € € € € € ðVð Vð Vð Vð Vr   r7   )Ú__doc__r\   r   Útypingr   Úrequests.exceptionsr   Úhuggingface_hub.commandsr   Ú#huggingface_hub.commands._cli_utilsr   Úhuggingface_hub.constantsr   r	   Úhuggingface_hub.errorsr
   r   r   Úhuggingface_hub.hf_apir   Úhuggingface_hub.utilsr   Ú
get_loggerrE   Úloggerr   r%   r_   r0   r4   r7   rI   r   r   ú<module>r“      s  ððð ð €€€Ø &Ð &Ð &Ð &Ð &Ð &Ø Ð Ð Ð Ð Ð à )Ð )Ð )Ð )Ð )Ð )à >Ð >Ð >Ð >Ð >Ð >Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aÐ aØ (Ð (Ð (Ð (Ð (Ð (Ø )Ð )Ð )Ð )Ð )Ð )ð 
ˆÔ	˜HÑ	%Ô	%€ðhUð hUð hUð hUð hUÐ,ñ hUô hUð hUðVFð Fð Fð Fð Fñ Fô Fð Fð2ð ð ð ð ñ ô ð ðVð Vð Vð Vð V˜>ñ Vô Vð Vð2ð ð ð ð ˜ñ ô ð ð,Vð Vð Vð Vð V˜>ñ Vô Vð Vð Vð Vr   