
    Ցi0                     
   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	  SSK
J
r
Jr  SSKJr  SSKJr  SSKJrJr  SSKrSSKJr  SS	KJrJr  S
SKJr  Sr\" S5      rSrSr\" \S9r\	 " S S5      5       r \RC                  SSS/S9 SHS\RD                  S\\#\RH                  " SS94   S\\%\RL                  " SSS94   SS4S jj5       r'\RC                  S S!SS!S".S#S$/S%9S\RD                  S&\\#\RH                  " S'S94   SS4S( j5       r(\RC                  S)S*/S9SIS+ j5       r)\RC                  S,S-/S9S&\\#\RH                  " S.S94   SS4S/ j5       r*S\+\,\#\#4      4S0 jr-S1\S\.4S2 jr/S3\#S4\#S\.4S5 jr0S6\+\#   S7\1\#   S\\2   4S8 jr3S1\S9\S:\ SS4S; jr4S\4S< jr5S=\#S\4S> jr6S=\#S\#4S? jr7S=\#S\4S@ jr8\Rr                  " SA5      r:S=\#SB\#S\#4SC jr;S\#S\,\#\#\#4   4SD jr<S&\#S\#4SE jr=SF\S6\+\#   S\24SG jr>g)Jz0Contains helper utilities for hf CLI extensions.    N)asdict	dataclass)datetimetimezone)Path)TemporaryDirectory)	AnnotatedOptional)CLIError)get_sessiontabulate   )typer_factoryhuggingfacez~/.local/share/hf/extensionszmanifest.jsonzyManage hf CLI extensions.

Security Warning: extensions are third-party executables. Install only from sources you trust.)helpc                   ~    \ rS rSr% \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S'   \\S	'   \\S
'   Sr\\S'   Srg)ExtensionManifest/   ownerreporepo_id
short_nameexecutable_nameexecutable_pathtypeinstalled_atsource description N)__name__
__module____qualname____firstlineno__str__annotations__r   __static_attributes__r        ^/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/huggingface_hub/cli/extensions.pyr   r   /   s<    J
ILO
IKKr(   r   installzhf extensions install hf-claudez-hf extensions install hanouticelina/hf-claude)examplesFctxr   z:GitHub extension repository in `[OWNER/]hf-<name>` format.forcez--forcezOverwrite if already installed.returnc                    [        U5      u  p4nU R                  5       n[        [        UR                  S0 5      R                  5       5      nXW;   a  [        SU SU S35      e[        U5      nUR                  5       (       a,  U(       d  [        SU S35      e[        R                  " U5        [        X45      n	[        U5      n
SU SU S	U
 3n [        5       R                  US
S9nUR                  5         [#        5        n[%        U5      U
-  nUR'                  UR(                  5        [*        R,                  S:w  a  [*        R.                  " US5        [1        UUU SU 3UU
[3        [5        U5      5      S[6        R8                  " [:        R<                  5      R?                  5       SU SU 3[3        U	R                  SS5      5      S9
n[A        UUUS9  SSS5        [C        SU SU S35        [C        SU 35        [C        SU 35        g! [          a  n[        SU
 SU SU SU 35      UeSnAff = f! , (       d  f       Ng= f)zInstall an extension from a public GitHub repository.

Security warning: this installs a third-party executable. Install only from sources you trust.
commandszCannot install extension 'z,' because it conflicts with an existing `hf z
` command.Extension 'z1' is already installed. Use --force to overwrite."https://raw.githubusercontent.com///refs/heads/main/Tfollow_redirectszFailed to download 'z' from 'z': Nnt  binaryzhttps://github.com/r   r   )
r   r   r   r   r   r   r   r   r   r   )extension_dirsource_executablemanifestzInstalled extension ''.zRun it with: hf zOr with: hf extensions exec )"_normalize_repo_id	find_rootsetgetattrcommandkeysr   _get_extension_direxistsshutilrmtree_fetch_remote_manifest_get_executable_namer   getraise_for_status	Exceptionr   r   write_bytescontentosnamechmodr   r%   _get_extension_executable_pathr   nowr   utc	isoformat_persist_installed_extensionprint)r,   r   r-   r   	repo_namer   root_ctxreserved_commandsr:   remote_manifestr   raw_urlresponseetmp_dirtmp_executabler<   s                    r)   extension_installra   =   sT   & $6g#> Ej}}HGH$4$4j"EJJLM&(4`ak`llvw
 	
 'z2M[4efggm$,U>O*:6O25'9+EVWfVghGi=$$Wt$D!!# 
	g8""8#3#3477d?HH^U+$gQyk*!+ >z JK!hll3==?(q<O//rBC
 	%',	
% 
0 
!%)B
78	ZL
)*	(
56;  i-o->hugQykY\]^\_`aghhi 
	s%   (H CH=
H:H55H:=
IexecT)allow_extra_argsallow_interspersed_argsignore_unknown_optionsz#hf extensions exec claude -- --helpz/hf extensions exec claude --model zai-org/GLM-5)context_settingsr+   rP   z.Extension name (with or without `hf-` prefix).c                     [        U5      n[        U5      nUR                  5       (       d  [        SU S35      e[	        U[        U R                  5      S9n[        R                  " US9e)zExecute an installed extension.r1   ' is not installed.r   args)code)	_normalize_extension_namerR   is_filer   _execute_extension_binarylistrj   typerExit)r,   rP   r   r   	exit_codes        r)   extension_execrs      sd      +40J4Z@O""$$ZL0CDEE)/PTUXU]U]P^_I
**)
$$r(   ro   zhf extensions listc                  "   [        5       n U R                  5       (       d  [        S5        g/ n[        U R	                  5       5       H  nUR                  5       (       a   UR
                  R                  S5      (       d  M:  UR
                  SS n[        U5      nUR                  SU 3[        UR                  SS5      5      [        UR                  SS5      5      /5        M     U(       d  [        S5        g[        [        U/ S	QS
95        g)z"List installed extension commands.zNo extensions installed.Nhf-   zhf r   r   r   )COMMAND
REPOSITORYINSTALLED_AT)headers)_get_extensions_rootis_dirrW   sortediterdirrP   
startswith_read_local_manifestappendr%   rJ   r   )root_dirrowsr:   r   datas        r)   extension_listr      s     $%H??()D 0 0 23##%%]-?-?-J-J5-Q-Q"''+
#M2s:,'TXXi-D)Es488TbdfKgGhij 4 ()	(4!J
KLr(   removezhf extensions remove claudez8Extension name to remove (with or without `hf-` prefix).c                     [        U 5      n[        U5      nUR                  5       (       d  [        SU S35      e[        R
                  " U5        [        SU S35        g)zRemove an installed extension.r1   rh   zRemoved extension 'r=   N)rl   rD   r|   r   rF   rG   rW   )rP   r   r:   s      r)   extension_remover      sZ     +40J&z2M!!ZL0CDEE
MM- 	
|2
./r(   c                  Z   [         R                  5       n U R                  5       (       d  / $ / n[        U R	                  5       5       H  nUR                  5       (       a   UR
                  R                  S5      (       d  M:  UR
                  SS  n[        U5      nUR                  SS5      nUR                  SS5      n[        U[        5      (       a  U(       a  SU S3OSn[        U[        5      (       a  U(       a  U U 3OUR                  5       nUR                  X845        M     U$ )	Nru   rv   r   r   r   z [extension ]z [extension])EXTENSIONS_ROOT
expanduserr|   r}   r~   rP   r   r   rJ   
isinstancer%   lstripr   )	r   entriesr:   r   r   r   r   tag	help_texts	            r)   #_list_installed_extensions_for_helpr      s    ))+H??	G 0 0 23##%%]-?-?-J-J5-Q-Q"''+
#M2hh}b1((9b)+5gs+C+CWIQ'Uc-7S-I-Ik{mC5)_b_i_i_k	
./ 4 Nr(   r:   c                      U [         -  nUR                  5       (       a;  [        R                  " UR	                  5       5      n[        U[        5      (       a  U$ 0 $ ! [         a     0 $ f = fN)MANIFEST_FILENAMErm   jsonloads	read_textr   dictrL   )r:   manifest_pathr   s      r)   r   r      sj    %(99  ""::m5578D$%% I  Is   AA 
A+*A+r   rX   c                     SU  SU S[          3n [        5       R                  USS9nUR                  5         UR	                  5       $ ! [
         a    0 s $ f = f)Nr2   r3   r4   Tr5   )r   r   rJ   rK   r   rL   )r   rX   r\   r]   s       r)   rH   rH      se    25'9+EVWhVijG=$$Wt$D!!#}} 	s   7A	 	AArj   known_commandsc                    U (       d  g U S   nUR                  S5      (       a  g X!;   a  g UR                  S5      (       a  USS  OUnU(       d  g [        U5      nUR                  5       (       d  g [        U[	        U SS  5      S9$ )Nr   -ru   rv   r   ri   )r   rR   rm   rn   ro   )rj   r   command_namer   r   s        r)   %_dispatch_unknown_top_level_extensionr      s    7Ls##%%1%<%<U%C%Cab!J4Z@O""$$$_4PTUVUWPX>ZZr(   r;   r<   c                 ~   XR                   -  nU [        -  n U R                  SSS9  [        R                  " X5        [
        R                  S:w  a  [
        R                  " US5        UR                  [        R                  " [        U5      SSS9S-   S	S
9  g ! [         a    [        R                  " U SS9  e f = f)NTFparentsexist_okr7   r8      )indent	sort_keys
zutf-8)encoding)ignore_errors)r   r   mkdirrF   copy2rO   rP   rQ   
write_textr   dumpsr   rL   rG   )r:   r;   r<   r   r   s        r)   rV   rV   	  s    #&>&>>O!$55MD59&877d?HH_e,  F8,<QRV!WZ^!^ip q m48s   BB !B<c                  N    [         R                  5       n U R                  SSS9  U $ )NTr   )r   r   r   )r   s    r)   r{   r{     s%    ))+HNN4$N/Or(   r   c                     [        X S9n[        5       R                  5       nUSU 3-  R                  5       nX#R                  ;  a  [	        SU  S35      eU$ )Noriginal_inputru   Invalid extension name 'r=   )_validate_extension_short_namer{   resolver   r   )r   	safe_nameroottargets       r)   rD   rD     s[    .zUI!))+Ds9+&&//1F>>!1*R@AAMr(   c                 B    SU  3n[         R                  S:X  a  US-  nU$ )Nru   r7   z.exe)rO   rP   )r   rP   s     r)   rI   rI   '  s'    D	ww$Kr(   c                 0    [        U 5      [        U 5      -  $ r   )rD   rI   )r   s    r)   rR   rR   .  s    j),@,LLLr(   z^[A-Za-z0-9][A-Za-z0-9._-]*$r   c                &  ^ U R                  5       mT(       d  [        S5      e[        U4S jS 5       5      (       a  [        SU S35      eST;   d  ST;   a  [        SU S35      e[        R	                  T5      (       d  [        SU S35      eT$ )	NExtension name cannot be empty.c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r    ).0seprP   s     r)   	<genexpr>1_validate_extension_short_name.<locals>.<genexpr>9  s     
.+3$;+s   )r3   \r   r=   z..:z9'. Allowed characters: letters, digits, '.', '_' and '-'.)stripr   any_ALLOWED_EXTENSION_NAME	fullmatch)r   r   rP   s     @r)   r   r   5  s    D899

.+
...1.1ADEEt|sd{1.1ADEE",,T22&~&66op
 	
 Kr(   c                 t   SU ;   a  [        S5      eU R                  S5      n[        U5      S:X  a  [        nUS   nO3[        U5      S:X  a  [	        U5      (       a  Uu  p#O[        SU  S35      eUR                  S	5      (       d  [        S
U S35      eUSS  nU(       d  [        S5      e[        X@S9  X#U4$ )Nz://zEOnly GitHub repositories in `[OWNER/]hf-<name>` format are supported.r3   r   r   r   z%Expected `[OWNER/]REPO` format, got 'r=   ru   z6Extension repository name must start with 'hf-', got 'rv   z(Invalid extension repository name 'hf-'.r   )r   splitlenDEFAULT_EXTENSION_OWNERallr   r   )r   partsr   rX   r   s        r)   r>   r>   D  s    ^__MM#E
5zQ'!H		UqSZZ y>wirJKK&&OPY{Z\]^^12JABB":FZ''r(   c                     U R                  5       nU(       d  [        S5      eUR                  S5      (       a  USS  OUn[        X S9$ )Nr   ru   rv   r   )r   r   r   r   )rP   	candidate
normalizeds      r)   rl   rl   \  sD    

I899"+"6"6u"="=129J)*JJr(   r   c                 &    [         R                  " [        U 5      /U-   5      $ ! [         aa  n[        R
                  S:X  d  UR                  [        R                  :w  a  e [         R                  " S[        U 5      /U-   5      s S nA$ S nAff = f)Nr7   sh)
subprocesscallr%   OSErrorrO   rP   errnoENOEXEC)r   rj   r^   s      r)   rn   rn   d  sq    DO 45<== D77d?agg6c/&:;dBCCDs   "% 
BABBB)F)r.   N)?__doc__r   r   rO   rerF   r   dataclassesr   r   r   r   pathlibr   tempfiler   typingr	   r
   rp   huggingface_hub.errorsr   huggingface_hub.utilsr   r   
_cli_utilsr   r   r   r   EXTENSIONS_HELPextensions_clir   rB   Contextr%   ArgumentboolOptionra   rs   r   r   ro   tupler   r   r   rH   r@   intr   rV   r{   rD   rI   rR   compiler   r   r>   rl   rn   r    r(   r)   <module>r      si   7   	 	   ) '  ' &  + 7 % ( 56# + 
 O4 
 
 
 )7   _d>7	>7XY	[>7 T5<<	8YZZ[>7 
>7>7B 
*.5lpq-9  %	%
LM	O% 
%%$ *>)?@M AM. ,I+JK0
VW	Y0
 
0 L0(T%S/-B $	 	 	# # $ [S	 [3s8 [X`adXe [*  Yj os d 3 4 S S Ms Mt M **%DE s s s ( (c3m(< (0KC KC KDt D49 D Dr(   