+
    Pjc              	       6   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	H
t
 ^ RIHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIt^ RIHtHtHt ^ RIHtHt ^R	IHt ^R
IHtH t  ^RI!H"t" Rt#]! R4      t$Rt%Rt&]! ]&R7      t'Rt(^
t)Rt*]PV                  ! ],4      t- ! R R].]4      t/]
 ! R R4      4       t0]'Pc                  R. RgOR7      RhR R ll4       t2]'Pc                  R. RiOR7      RjR R ll4       t3]'Pc                  RR R!R"RR#R!/R$R%.R&7      R' R( l4       t4]'Pc                  R)R*.R7      R+ R, l4       t5]'Pc                  R-R..R7      R/ R0 l4       t6]'Pc                  R1R2.R7      R3 R4 l4       t7R5 R6 lt8R7 R8 lt9R9 R: lt:R; R< lt;R= R> lt<R? R@ lt=RARRBR/RC RD llt>RER!/RF RG llt?RH RI lt@RJ RK ltARL RM ltBRN RO ltCRP RQ ltDRRRRSR/RT RU lltERV RW ltFRX RY ltGRZ R[ ltHR\ R] ltI]P                  ! R^4      tKR_ R` ltLRa Rb ltMRc Rd ltNRe Rf ltOR# )kz0Contains helper utilities for hf CLI extensions.N)asdict	dataclass)datetimetimezone)EnumPath)	AnnotatedLiteral)CLIErrorCLIExtensionInstallErrorConfirmationError)get_sessionlogging)typer_factory)ArgumentOption)outhuggingfacez~/.local/share/hf/extensionszmanifest.jsonzManage hf CLI extensions.

Security Warning: extensions are third-party executables or Python packages. Install only from sources you trust.helpzhf-extensioni,  c                   "    ] tR t^7tRtRtRtRtR# )_ExtensionUpdateStatusupdated
up_to_dateskipped N)__name__
__module____qualname____firstlineno__UPDATED
UP_TO_DATESKIPPED__static_attributes__r       w/Users/ahmed/devFolder/Ultron/claude-voice/gateway/.venv/lib/python3.14/site-packages/huggingface_hub/cli/extensions.pyr   r   7   s    GJGr%   r   c                   b   a  ] tR t^=t o RtRt]V 3R lR l4       tV 3R lR ltV 3R lt	Rt
V tR# )ExtensionManifestNc                $   < V ^8  d   QhRS[ RR/# )   pathreturnr(   r   )format__classdict__s   "r&   __annotate__ExtensionManifest.__annotate__J   s     ) ) )!4 )r%   c                z   V\         ,          pVP                  4       '       g   \        R V R24      h\        P                  ! VP                  4       4      pVP                  4        UUu/ uF  w  rEW@P                  9   g   K  WEbK  	  ppp\        P                  ! VR,          4      VR&   \        R/ VB # u uppi )zManifest file not found at z". Your extension may be corrupted.installed_atr   )MANIFEST_FILENAMEis_filer   jsonloads	read_textitems__dataclass_fields__r   fromisoformatr(   )clsr+   manifest_pathdatakeyvalues   &&    r&   loadExtensionManifest.loadI   s    00$$&&8Gijkkzz-1134-1ZZ\]\zsSD\D\=\

\]'55d>6JK^ (4(( ^s   *B7B7c                $   < V ^8  d   QhRS[ RR/# )r*   r+   r,   Nr   )r-   r.   s   "r&   r/   r0   T   s     M M M$ Mr%   c                    V\         ,          pVP                  P                  R R R7       \        V 4      pV P                  P                  4       VR&   VP                  \        P                  ! V^R R7      4       R# )Tparentsexist_okr2   )indent	sort_keysN)	r3   parentmkdirr   r2   	isoformat
write_textr5   dumps)selfr+   r<   r=   s   &&  r&   saveExtensionManifest.saveT   sc    00""4$"?d|#00::<^  Dd!KLr%   c                   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[R,          ;R&   S[;R&   S[ R,          ;R	&   S[ R,          ;R
&   # )r*   ownerreporepo_id
short_nameexecutable_pathtyper2   Ndescription
commit_sha)binarypython)strr
   r   )r-   r.   s   "r&   r/   r0   =   s     J  I  L	 
 O    $
%%    t"  d
! r%   r   )r   r   r   r    rX   rY   classmethodr@   rO   __annotate_func__r$   __classdictcell__)r.   s   @r&   r(   r(   =   s6      #K!J) )M M/  r%   r(   install)examplesFc                    V ^8  d   QhR\         P                  R\        \        \	        RR7      3,          R\        \
        \        RRR7      3,          RR	/# )
r*   ctxrT   z:GitHub extension repository in `[OWNER/]hf-<name>` format.r   forcez--forcezOverwrite if already installed.r,   N)clickContextr	   r\   r   boolr   )r-   s   "r&   r/   r/   d   s]     &. &.	&.RS	U&. T6)2STTU&. 
&.r%   c                |   \        V4      w  r4pV P                  4       p\        \        VP                  R/ 4      P                  4       4      pWW9   d   \        RV RV R24      h\        V4      pVP                  4       '       d   V'       g   \        RV R24      h\        W4R7      w  rVP                  4       '       d   \        P                  ! V4       \        W4WYV
R7      pVP                  P                  4       p\        P                   ! V R	2V R
V 2RV 2R7       \        P"                  ! RV 24       R# )zInstall an extension from a public GitHub repository.

Security warning: this installs a third-party executable or Python package.
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.rR   	repo_namerR   rl   rU   branchrX   z extension installed/hf )sourcecommandzRun it with: hf N)_normalize_repo_id	find_rootsetgetattrrr   keysr   _get_extension_direxists_fetch_github_repo_infoshutilrmtree_install_extensionrW   
capitalizer   resulthint)rc   rT   rd   rR   rl   rU   root_ctxreserved_commandsextension_dirrn   rX   manifestext_types   &&&          r&   extension_installr   \   s/   * $6g#> Ej}}HGH$4$4j"EJJLM&(4`ak`llvw
 	
 'z2MeZL0abcc1SFm$!Z\gH }}'')HJJ*())%j\"
 HH
|,-r%   updatec                d    V ^8  d   QhR\         \        R,          \        RR7      3,          RR/# )r*   nameNzExtension to update (with or without `hf-` prefix, optionally as `OWNER/hf-<name>`). If omitted, all installed extensions are checked and the outdated ones are updated.r   r,   r	   r\   r   )r-   s   "r&   r/   r/      s=     3 3
d
f	
	3 
3r%   c                   V e   \        V 4      p\        V4      pT;\        P                  8X  d1    \        P
                  ! RVP                  VP                  R7       R# ;\        P                  8X  d4    \        P
                  ! RVP                   R2VP                  R7       R# \        P                  8X  d    R# R# \        4       pV'       g/   \        P                  ! R4       \        P                  ! R4       R# . p. pV F  p\        P                  ! R	VP                   R
VP                   R24        \        V4      pT;\        P                  8X  d    TP                  TP                  4       Kt  ;\        P                  8X  d    TP                  TP                  4       K  \        P                  8X  g   K  K  	  \        P
                  ! RV'       d   RP!                  V4      MRV'       d   RP!                  V4      MRR7       R#   \         dA   p\        P                  ! RTP                   R
TP                   RT R24        Rp?EKT  Rp?ii ; i)z6Update installed extension(s) to their latest version.NzExtension updated)r   rq   rj   z' is already up to dater   zNo extensions installed.z1Install one with: hf extensions install <repo_id>z
Checking '' (z)...zCould not update '): . Skipping.zExtensions update completez, )r   r   )$_load_installed_extension_for_update_update_installed_extensionr   r!   r   r   rU   rT   r"   r#   _list_installed_extensionswarningr   log	Exceptionappendjoin)r   r   update_status	manifestsr   r   errors   &      r&   extension_updater      s   ( 7=3H=/'//

.X5H5HQYQaQab
 		 3'22

[)<)<(==TU\d\o\op 	 (//*,I./DEGJ*X001X5E5E4FdKL	7AM
 /'//x2232'22!!("5"56'///  JJ$&-		'"4,6499Z(D  	KK,X-@-@,AXEUEUDVVYZ_Y``klm	s   =HI!!4II!execallow_extra_argsTallow_interspersed_argsignore_unknown_optionsz#hf extensions exec claude -- --helpz/hf extensions exec claude --model zai-org/GLM-5)context_settingsra   c          	      v    V ^8  d   QhR\         P                  R\        \        \	        RR7      3,          RR/# )r*   rc   r   z.Extension name (with or without `hf-` prefix).r   r,   N)re   rf   r	   r\   r   )r-   s   "r&   r/   r/      sA     0 0	0
FG	I0 
0r%   c                    \        V4      p\        V4      pVP                  4       '       g   \        RV R24      h\	        V\        V P                  4      R7      p\        P                  P                  VR7      h)zExecute an installed extension.rj   ' is not installed.rV   args)code)
_normalize_extension_name"_resolve_installed_executable_pathr4   r   _execute_extension_binarylistr   re   
exceptionsExit)rc   r   rU   rV   	exit_codes   &&   r&   extension_execr      so      +40J8DO""$$ZL0CDEE)/PTUXU]U]P^_I




Y

//r%   z	list | lszhf extensions listc                    V ^8  d   QhRR/# r*   r,   Nr   )r-   s   "r&   r/   r/      s     & & &r%   c                 2   \        4        U u. uFe  p RRV P                   2R\        V P                  4      R\        V P                  4      RV P
                  P                  R4      RV P                  /NKg  	  pp \        P                  ! VRR7       R	# u up i )
z"List installed extension commands.rr   rp   rq   rW   	installedz%Y-%m-%drX   id_keyN)
r   rU   r\   rT   rW   r2   strftimerX   r   table)r   rowss     r&   extension_listr      s     34	 5H X0012c(**+C&..77
C8//	
 5 	 	 IId9%	s   A+Bsearchzhf extensions searchc                    V ^8  d   QhRR/# r   r   )r-   s   "r&   r/   r/      s     # #$ #r%   c                    \        RRR\         2RRRRR^d/R	7      p V P                  4       p\        4        Uu0 uF  q"P                  kK  	  pp. pVP                  R
. 4       Fn  pVR,          P                  R4      pTP                  RTRVR,          RVP                  R^ 4      RVP                  R4      ;'       g    RRWc9   d   RMR/4       Kp  	  \        P                  ! VRR7       R# u upi )zISearch extensions available on GitHub (tagged with 'hf-extension' topic).z*https://api.github.com/search/repositoriesqztopic:sortstarsorderdescper_page)paramsr8   r   hf-rS   	full_namestargazers_countrX    r   yesr   N)
_github_get_EXTENSIONS_GITHUB_TOPICr5   r   rU   getremoveprefixr   r   r   )responser=   mr   r   rS   rU   s          r&   extension_searchr      s     4v678&'7TZ\fhklH ==?D'A'CD'C!'CIDD"%&\..u5

[)"4a8txx6<<"j&=U2	
 & IId6" Es   C/zremove | rmzhf extensions remove claudec                V    V ^8  d   QhR\         \        \        RR7      3,          RR/# )r*   r   z8Extension name to remove (with or without `hf-` prefix).r   r,   Nr   )r-   s   "r&   r/   r/     s5     5 5
PQ	S5
 
5r%   c                    \        V 4      p\        V4      pVP                  4       '       g   \        RV R24      h\        P
                  ! V4       \        P                  ! RVR7       R# )zRemove an installed extension.rj   r   zExtension removedr   N)r   rx   is_dirr   r{   r|   r   r   )r   rU   r   s   &  r&   extension_remover     sW     +40J&z2M!!ZL0CDEE
MM- JJ"4r%   c                :    V ^8  d   QhR\         \        ,          /# r*   r,   )r   r(   )r-   s   "r&   r/   r/   %  s      D):$; r%   c                    \         P                  4       p V P                  4       '       g   . # . p\        V P	                  4       4       Fa  pVP                  4       '       d"   VP
                  P                  R4      '       g   K<   VP                  \        P                  V4      4       Kc  	  V#   \         d1   p\        P                  RTP
                   RT 24        Rp?K  Rp?ii ; i)zPReturn manifests for all validly-installed extensions, sorted by directory name.r   z'Failed to load manifest for extension '': N)EXTENSIONS_ROOT
expanduserr   sortediterdirr   
startswithr   r(   r@   r   loggerdebug)root_dirr   r   es       r&   r   r   %  s    ))+H??	I 0 0 23##%%]-?-?-J-J5-Q-Q	.33MBC	 4   	LLB=CUCUBVVYZ[Y\]^	s   $B//C*:%C%%C*c                \    V ^8  d   QhR\         \        \        \        3,          ,          /# r   )r   tupler\   )r-   s   "r&   r/   r/   6  s       DsCx,A r%   c                      . p \        4        FQ  pR VP                   R2pVP                  e   VP                   RV 2MTpV P                  VP                  V34       KS  	  V # )z[extension ] )r   rT   rX   r   rU   )entriesr   tag	help_texts       r&   "list_installed_extensions_for_helpr   6  sl    G.0H,,-Q/7?7K7K7Wx++,AcU3]`	++Y78 1 Nr%   c                v    V ^8  d   QhR\         \        ,          R\        \        ,          R\        R,          /# )r*   r   known_commandsr,   N)r   r\   ru   int)r-   s   "r&   r/   r/   ?  s5     [ [tCy [#c( [WZ]aWa [r%   c                    V '       g   R # V ^ ,          pVP                  R4      '       d   R # V UUu0 uF)  q3P                  R4       F  qDP                  4       kK  	  K+  	  pppW%9   d   R #  \        VP	                  R4      VR7      p \        T4      pTe   TP                  4       '       g   R # \        T\        T R,          4      R7      # u uppi   \
         d     R # i ; i  \         d    \        T4      p Lii ; i)N-|r   original_input:   NNr   )r   splitstrip_validate_extension_short_namer   r   r   r    _auto_install_official_extensionr4   r   r   )r   r   command_namecmda	all_knownrU   rV   s   &&      r&   $dispatch_unknown_top_level_extensionr   ?  s    7Ls##&4MnsiinnnIM 3L4M4Me4Teqr

G<ZH o&=&=&?&?$_4PTUWPX>ZZ% N    G::FGs)   /C-C 
C& C#"C#&C?>C?c                >    V ^8  d   QhR\         R\        R,          /# )r*   rU   r,   Nr\   r   )r-   s   "r&   r/   r/   [  s        r%   c           	        \         RV  2r!\        V 4      P                  4       '       d   R#  \        WR7      w  r4 \
        P                  ! RT  RT RT R24        \        YYTR7      p\        TP                  4      P                  4       #   \         d     R# i ; i  \         d     R# i ; i  \         d     R# i ; i)	zKTry to auto-install huggingface/hf-<name>. Returns executable path or None.r   Nrk   'z)' is an official Hugging Face extension (ro   z). Install it?rm   )DEFAULT_EXTENSION_OWNERrx   ry   rz   r   r   confirmr   r}   r   rV   r   )rU   rR   rl   rn   rX   r   s   &     r&   r   r   [  s    .#j\0B9*%,,..5EWa
|#LUGSTU^T__mno%`k
 H,,-88::  
    s4   B  B  0B2 BB B/.B/2C Cc                0    V ^8  d   QhR\         R\        /# r*   r   r,   r\   r(   )r-   s   "r&   r/   r/   s  s     	1 	1s 	17H 	1r%   c                    \        V 4      p\        V4      pVP                  4       '       gI   V P                  4       P	                  R 4      w  p pV'       d   V RV 2MRV 2p\        RV RV 24      h\        P                  V4      # )ro   z/hf-r   rj   zA' is not installed. Install it first with: hf extensions install )r   rx   r   r   
rpartitionr   r(   r@   )r   rU   r   rR   _install_targets   &     r&   r   r   s  s    *40J&z2M!!jjl--c2q!7<E7$zl3C
|BT*%fgufvw
 	
 !!-00r%   c                0    V ^8  d   QhR\         R\        /# )r*   r   r,   )r(   r   )r-   s   "r&   r/   r/     s     * **; *@V *r%   c                    V P                   V P                  V P                  r2p \        WR 7      w  rE\        YTRR7      pTf1   \
        P                  ! RT RT RT R	24       \        P                  # YpP                  8X  d   \        P                  # \        TTTTTTR
7       \        P                  #   \         d>   p\
        P                  ! RT RT RT RT R2	4       \        P                  u Rp?# Rp?ii ; i)rk   zCould not check updates for 'r   ro   r   r   NF)rR   rl   rn   warnz#): GitHub is unreachable. Skipping.)rR   rl   rU   rn   rX   rY   )rR   rS   rU   rz   r   r   r   r   r#   _fetch_latest_commit_sharY   r"   r}   r!   )r   rR   rl   rU   rn   rX   r   
latest_shas   &       r&   r   r     s   #+>>8==(BUBUjE.5EW
 *SY`efJ+J<s5'9+Mpq	
 &---(((%000 ")))-  .3J<s5'9+UXY^X__jkl%---.s   B6 6C>2C93C>9C>rX   rY   c                    V ^8  d   QhR\         R\         R\         R\         R\         R,          R\         R,          R\        /# )	r*   rR   rl   rU   rn   rX   NrY   r,   r  )r-   s   "r&   r/   r/     sa     @= @=@= @= 	@=
 @= t@= d
@= @=r%   c                   \        V4      pVP                  4       '       * pRp  \        WW2R7      p	V	e   \	        WbV	R7      p
M\        W`WVR7      p
\        T TV  RV 2T\        V
4      V	e   RMR\        P                  ! \        P                  4      \        WW4R	7      T;'       g    \        WVR
7      R7	      pVP                  V4       RpTV'       g#   V'       d   \        P                   ! VRR7       # # #   \         d    Rp	 Li ; i  \"         d    h \$        P&                   d    p\)        R\*         RT  RT R24      ThRp?i\$        P,                   d&   p\)        RT  RT RTP.                   R24      ThRp?i\         d   p\)        RT  RT RT 24      ThRp?ii ; i  T'       g#   T'       d   \        P                   ! TRR7       i i i ; i)a  Fetch and install an extension (binary or Python package), then persist its manifest.

Installs in place: an existing install is overwritten without being removed first, so a failed
update keeps the previous version working. A failed fresh install is cleaned up entirely.
F)rR   rl   rn   rU   N)r   rU   rZ   )r   rR   rl   rU   rn   ro   rZ   r[   )rR   rl   rn   candidate_description)rR   rl   rn   )	rR   rS   rT   rU   rV   rW   r2   rX   rY   T)ignore_errorszPip install timed out after zs for 'z$'. See pip output above for details.z$Failed to install pip package from 'z' (exit code z$). See pip output above for details.z"Failed to install extension from 'r   )rx   ry   _fetch_remote_binaryr   _install_binary_extension_install_python_extensionr(   r\   r   nowr   utc_try_fetch_remote_descriptionr  rO   r{   r|   r   
subprocessTimeoutExpiredr   _EXTENSIONS_PIP_INSTALL_TIMEOUTCalledProcessError
returncode)rR   rl   rU   rn   rX   rY   r   fresh_installr   rZ   rV   r   r   s   $$$$$$       r&   r}   r}     s    'z2M%,,..MI/=	)SYqF 7+6O 8+ImsO %gQyk*!0#/X!hll35 "nn%=Egm%n
 	m$	  ]MM-t< +yW  	F	8  $$ &*+J*K7SXRYYZ[dZe f0 0
 	 (( &25'9+]STS_S_R` a0 0
 	  n&)KE7RST]S^^abcad'eflmmn ]MM-t< +ysq   C; BD ;DD 
DD F(-F(.EF(F(  F  F(F(F##F((F+ +G<Gr
  c                b    V ^8  d   QhR\         R\         R\         R\        R\         R,          /# )r*   rR   rl   rn   r
  r,   N)r\   rg   )r-   s   "r&   r/   r/     s6      s s C t _bei_i r%   c                    \        RV  RV RV 2RR/R7      pVP                  P                  4       ;'       g    R#   \         d6   pT'       d#   \        P
                  ! RT R	T  RT R
T 24        Rp?R# Rp?ii ; i)zZBest-effort fetch of the latest commit SHA for a branch, used to detect available updates.https://api.github.com/repos/ro   z	/commits/Acceptzapplication/vnd.github.sha)headersNz'Could not fetch latest commit SHA for 'r   r   )r   textr   r   r   r   )rR   rl   rn   r
  r   r   s   $$$$  r&   r  r    s    	+E7!I;ixP;<
 }}""$,,, KKA)CPUwVWXaWbbefkelmns   8> > A>	*A99A>c          
      T    V ^8  d   QhR\         R\         R\         R\         R\        /# )r*   rR   rl   rn   rU   r,   )r\   bytes)r-   s   "r&   r/   r/     s1      3 3  QT Y^ r%   c                 b    \        V4      pR V  RV RV RV 2p\        V4      pVP                  # )"https://raw.githubusercontent.com/ro   /refs/heads/)_get_executable_namer   content)rR   rl   rn   rU   executable_nameraw_urlr   s   $$$$   r&   r  r    sE    *:6O25'9+\RXQYYZ[jZklG7#Hr%   c                H    V ^8  d   QhR\         R\        R\        R\         /# )r*   r   rU   rZ   r,   )r   r\   r$  )r-   s   "r&   r/   r/     s)       # u Y] r%   c                     V P                  R R R7       V \        V4      ,          pVP                  V4       \        P                  R8w  d   \        P
                  ! VR4       V# )TrD   nti  )rJ   r(  write_bytesosr   chmod)r   rU   rZ   rV   s   $$$ r&   r  r    sR    t4#&::&FFO'	ww$
%(r%   c                `    V ^8  d   QhR\         R\        R\        R\        R\        R\         /# )r*   r   rR   rl   rU   rn   r,   r   r\   )r-   s   "r&   r/   r/      s<     +% +%+%#&+%36+%DG+%QT+%	+%r%   c           	         R V RV RV R2pV R,          p\        T\        P                  R8X  d   RMR4      p\        P                  ! R4      p\
        P                  ! 4       p	VP                  4       '       g   V	P                  R	V 24       V P                  R
R
R7       V'       d&   \        P                  ! VR\        V4      .R
R7       M/\        P                  ! R
R7      P                  \        V4      4       V	P!                  RV 24       V	P                  RV 24       V'       d   VRRRR\        V4      V.p
M\        V4      RRRRRRV.p
\        P                  ! V
R
\"        R7       V	P!                  RV 24       \%        V4      p\        Wk4      pVP                  4       '       g   \'        RV RV RV R24      hVP)                  4       # )zhttps://github.com/ro   z/archive/refs/heads/z.zipvenvr.  z
python.exer[   uvz Creating virtual environment in TrD   )check)with_pipzVirtual environment created in zInstalling package from pipr`   z--reinstallz--pythonz-mz--disable-pip-version-checkz
--no-inputz--force-reinstall)r7  timeoutzPackage installed from zInstalled package from 'z/' does not expose the required console script ''.)_get_venv_bin_pathr0  r   r{   whichr   statusr4   r   rJ   r  runr\   r5  
EnvBuildercreatedoner  r(  r   resolve)r   rR   rl   rU   rn   
source_urlvenv_dirvenv_pythonuv_pathr>  install_cmdr*  venv_executables   $$$$$        r&   r  r     s    'ugQyk9MfXUYZJv%H$Xrww$|T\]Kll4 GZZ\F  8
CDD48NNGVS];4HOOT*11#h-@5hZ@A
MM,ZL9:y-SQ\M]_ij )	
 NN;d4ST
KK)*67*:6O(CO""$$&ugQyk : $
 	
 ""$$r%   c                p    V ^8  d   QhR\         R\         R\         R\         R,          R\         R,          /# )r*   rR   rl   rn   r  Nr,   r\   )r-   s   "r&   r/   r/   .  s<     "! "!"!"!(+"!DG$J"!4Z"!r%   c                   RV  RV RV 2p \        V R\         24      pVP                  4       P                  R4      p\	        V\
        4      '       d   V#   \        V R24      pVP                  P                  4        F_  pVP                  4       pVP                  R4      '       g   K,  VP                  R4      w   rV	P                  4       P                  R4      u # 	  V#   \         d     Li ; i  \         d     T# i ; i)zuTry to fetch project description either from:
- manifest.json
- pyproject.toml

Only best effort, no error handling.
r&  ro   r'  rX   z/pyproject.toml=z"')r   r3   r5   r   
isinstancer\   r   r"  
splitlinesr   r   	partition)
rR   rl   rn   r  baser   rX   liner  r?   s
   &&&&      r&   r  r  .  s    0wa	{,vhWD$q):(;<=mmo))-8k3'' (
$78 MM,,.D::<D}--"nnS11{{}**511	 / ! #     ! 	s1   A
C' AC8 .4C8 #C8 'C54C58DDc                0    V ^8  d   QhR\         R\        /# r*   rU   r,   r   )r-   s   "r&   r/   r/   S  s     = =3 =4 =r%   c                 V    \        W R 7       \        P                  4       RV  2,          # )r   r   )r   r   r   )rU   s   &r&   rx   rx   S  s'     #:I%%'C
|*<<<r%   r   r!  c                X    V ^8  d   QhR\         R\        R,          R\        R,          /# )r*   urlr   Nr!  )r\   dict)r-   s   "r&   r/   r/   Z  s)      S TD[ $+ r%   c               j    \        4       P                  V VVR\        R7      pVP                  4        V# )z~Perform a GitHub GET request.

Shared by every GitHub/Raw fetch in this module so the timeout and redirect policy are shared.
T)r   r!  follow_redirectsr:  )r   r   _EXTENSIONS_DOWNLOAD_TIMEOUTraise_for_status)rW  r   r!  r   s   &$$ r&   r   r   Z  s=    
 }  , ! H Or%   c          	      l    V ^8  d   QhR\         R\         R\        \         \         R,          3,          /# )r*   rR   rl   r,   Nr\   r   )r-   s   "r&   r/   r/   j  s.     ; ;c ;c ;eCtO>T ;r%   c                x    \        RV  RV 24      pVP                  4       pVR,          VP                  R4      3# )zZFetch `default_branch` + `description` for a GitHub repo from `GET /repos/{owner}/{repo}`.r  ro   default_branchrX   )r   r5   r   )rR   rl   r   r=   s   $$  r&   rz   rz   j  s?    :5'9+NOH==?D !488M#:::r%   c                0    V ^8  d   QhR\         R\         /# rT  rK  )r-   s   "r&   r/   r/   q  s      S S r%   c                 L    R V  2p\         P                  R8X  d
   VR,          pV# )r   r.  z.exer0  r   )rU   r   s   & r&   r(  r(  q  s'    D	ww$Kr%   c                0    V ^8  d   QhR\         R\        /# rT  r   )r-   s   "r&   r/   r/   x  s     7 73 74 7r%   c                     \        V 4      p\        P                  V4      p\        VP                  4      P                  4       # N)rx   r(   r@   r   rV   r   )rU   r   r   s   &  r&   r   r   x  s6    &z2M %%m4H(()4466r%   c                <    V ^8  d   QhR\         R\        R\         /# )r*   rE  r*  r,   r3  )r-   s   "r&   r/   r/   ~  s!     . . . . .r%   c                 l    \         P                  R 8X  d   V R,          V,          # V R,          V,          # )r.  Scriptsbinrc  )rE  r*  s   &&r&   r<  r<  ~  s-    	ww$)#o55eo--r%   z^[A-Za-z0-9][A-Za-z0-9._-]*$c                <    V ^8  d   QhR\         R\         R\         /# )r*   rU   r   r,   rK  )r-   s   "r&   r/   r/     s!      s s s r%   c                z  a V P                  4       oS'       g   \        R 4      h\        ;QJ d    V3R lR	 4       F  '       g   K   RM	  RM! V3R lR	 4       4      '       d   \        RV R24      hRS9   g   RS9   d   \        RV R24      h\        P	                  S4      '       g   \        RV R24      hS# )
zExtension name cannot be empty.c              3   ,   <"   T F	  qS9   x  K  	  R # 5irf  r   ).0sepr   s   & r&   	<genexpr>1_validate_extension_short_name.<locals>.<genexpr>  s     
.+3$;+s   TFzInvalid extension name 'r;  z..:z9'. Allowed characters: letters, digits, '.', '_' and '-'.)ro   \)r   r   any_ALLOWED_EXTENSION_NAME	fullmatch)rU   r   r   s   &$@r&   r   r     s    D899
s
.+
.sss
.+
...1.1ADEEt|sd{1.1ADEE",,T22&~&66op
 	
 Kr%   c                \    V ^8  d   QhR\         R\        \         \         \         3,          /# )r*   rT   r,   r^  )r-   s   "r&   r/   r/     s%     ( ( (c3m(< (r%   c                    R V 9   d   \        R4      hV P                  R4      p\        V4      ^8X  d   \        pV^ ,          pM5\        V4      ^8X  d   \	        V4      '       d   Vw  r#M\        RV  R24      hVP                  R4      '       g   \        RV R24      hVP                  R4      pV'       g   \        R4      h\        W@R7       W#V3# )	z://zEOnly GitHub repositories in `[OWNER/]hf-<name>` format are supported.ro   z%Expected `[OWNER/]REPO` format, got 'r;  r   z6Extension repository name must start with 'hf-', got 'z(Invalid extension repository name 'hf-'.r   )r   r   lenr   allr   r   r   )rT   partsrR   rl   rU   s   &    r&   rs   rs     s    ^__MM#E
5zQ'!H		UqSZZ y>wirJKK&&OPY{Z\]^^''.JABB":FZ''r%   c                0    V ^8  d   QhR\         R\         /# r  rK  )r-   s   "r&   r/   r/     s     ^ ^C ^C ^r%   c                     V P                  4       P                  R ^4      R,          p\        VP                  R4      V R7      # )ro   r   r   )r   rsplitr   r   )r   rl   s   & r&   r   r     s8    

##C+B/I))*@*@*GX\]]r%   c                R    V ^8  d   QhR\         R\        \        ,          R\        /# )r*   rV   r   r,   )r   r   r\   r   )r-   s   "r&   r/   r/     s*     D Dt D49 D Dr%   c                 <    \         P                  ! \        V 4      .V,           4      #   \         dh   p\        P
                  R 8X  g    TP                  \        P                  8w  d   h \         P                  ! R\        T 4      .T,           4      u Rp?# Rp?ii ; i)r.  shN)r  callr\   OSErrorr0  r   errnoENOEXEC)rV   r   r   s   && r&   r   r     sq    DO 45<== D77d?agg6c/&:;dBCCDs   &) BABBB)zhf extensions install hf-claudez-hf extensions install hanouticelina/hf-claudez(hf extensions install alvarobartt/hf-mem)F)zhf extensions updatezhf extensions update hf-claudez'hf extensions update alvarobartt/hf-memrf  )P__doc__r  r5   r0  rer{   r  r5  dataclassesr   r   r   r   enumr   pathlibr   typingr	   r
   re   huggingface_hub.errorsr   r   r   huggingface_hub.utilsr   r   
_cli_utilsr   
_frameworkr   r   _outputr   r   r   r3   EXTENSIONS_HELPextensions_clir   r[  r  
get_loggerr   r   r\   r   r(   rr   r   r   r   r   r   r   r   r   r   r   r   r   r}   r  r  r  r  r  rx   r   rz   r(  r   r<  compileru  r   rs   r   r   r   r%   r&   <module>r     s   7   	 	    ) '   %  X X 6 % (  ( 56# + 
 O4) ! "% 			H	%S$  M M M<   &.&.R   33l 
($0I5Rjlpq-9  00$ /C.DE& F& ,B+CD# E#4 1N0OP5 Q5("[80	1*<@= #@= "@=FVZ +%\"!J=4 PT  ;7. **%DE (0^
Dr%   