
    MhGN                     <   d Z ddlZddlZddlmZ ddlmZmZmZ ddl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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#m$Z$m%Z% ddl&m'Z'  e(e          Z)dddiidfe)d<   dddiidfe)d<   dddiidfe)d<   dddiidfe)d<   dddiidfe)d<    ee)          Z*dddiid fe*d!<    ee)          Z+d"d#diid$fe+d#<    ee)          Z,d%d&diid'fe,d&<    ee)          Z-d(d&diid)fe-d&<    ee)          Z.d*d+diid,fe.d+<    e(e          Z/d-e/d.<   d/e/d<   d0e/d<   d1e/d2<    ee/          Z0d3e0d4<    ee/          Z1d5e1d6<    ee/          Z2d7e2d6<    ee/          Z3d8e3d6<    ee/          Z4d9e4d6<    e            Z5d:Z6 G d; dee          Z7 G d< d=e7          Z8 G d> d"e7          Z9 G d? d@e7          Z: G dA dBe7          Z; G dC d%e7          Z< G dD dEe7          Z= G dF dGe7          Z> G dH d(e7          Z? G dI d*e7          Z@ G dJ dKe7          ZA G dL dMe7          ZB G dN dOe7          ZC G dP dQe7          ZD G dR de7          ZEdSZF G dT dUe          ZGeGjH        ZIeJdVk    r ejK         eI                       dS dS )Wz"Jupyter LabExtension Entry Points.    N)copy)
JupyterAppbase_aliases
base_flags)BoolInstanceListUnicodedefault)
CoreConfig)DebugLogFileMixin   )HERE
AppOptionsbuildcheck_extensiondisable_extensionenable_extensionget_app_versioninstall_extensionlink_packagelist_extensionslock_extensionuninstall_extensionunlink_packageunlock_extensionupdate_extension)build_labextensiondevelop_labextension_pywatch_labextension)LabAppBaseExtensionAppshould_buildFz(Defer building the app after the action.zno-build	dev_buildTzBuild in development mode.z	dev-buildminimizez#Do not minimize a production build.zno-minimizeshould_cleanz,Cleanup intermediate files after the action.cleansplice_source*Splice source packages into app directory.zsplice-sourceCheckLabExtensionsAppshould_check_installed_onlyz)Check only if the extension is installed.	installedDevelopLabExtensionApp	overwritezOverwrite filesUpdateLabExtensionAppallzUpdate all extensionsUninstallLabExtensionAppzUninstall all extensionsListLabExtensionsAppverbosezIncrease verbosity levelzBaseExtensionApp.app_dirzapp-dirzBaseExtensionApp.dev_buildzBaseExtensionApp.minimizez DebugLogFileMixin.debug_log_pathzdebug-log-pathzInstallLabExtensionApp.pinzpin-version-aszEnableLabExtensionsApp.levellevelzDisableLabExtensionsApp.levelzLockLabExtensionsApp.levelzUnlockLabExtensionsApp.levelzUsers should manage prebuilt extensions with package managers like pip and conda, and extension authors are encouraged to distribute their extensions as prebuilt packagesc                   t   e Zd ZeZeZeZdZ ee	d          Z
 eddd          Z eddd          Z edddd	
          Z eddd          Z eddd          Z eddd          Z e e            d          Z ed          d             Z ed          d             Zd Zd Zd Zd ZdS )r"   labT)
allow_none zThe app directory to targetconfighelp)Whether to build the app after the actionNzWhether to build in dev mode. Defaults to True (dev mode) if there are any locally linked extensions, else defaults to False (production mode).)r7   r:   r;   z:Whether to minimize a production build (defaults to True).FzFWhether temporary files should be cleaned up after building jupyterlabr)   z@The standard paths to look in for prebuilt JupyterLab extensionsr;   labextensions_pathc                 d    t                      }|                                 |j        |j        z   S N)r!   load_config_fileextra_labextensions_pathr>   )selfr6   s     X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyterlab/labextensions.py_default_labextensions_pathz,BaseExtensionApp._default_labextensions_path   s.    hh+c.DDD    r(   c                 p    t          t          | j                            }|                    d          S )N)app_dirz-spliced)r   r   rH   endswith)rC   versions     rD   _default_splice_sourcez'BaseExtensionApp._default_splice_source   s0    !*T\"B"B"BCC
+++rF   c                    | j         r0| j                             t                    rd}t          |          |                                 5  |                                 }|r\| j        rU| j        d n| j         }t          | j         | j	        | j
        | j                  }t          | j        || j        |           d d d            d S # 1 swxY w Y   d S )Nz-Cannot run lab extension commands in core app)rH   loggercore_configr(   )clean_staging
productionr%   app_options)rH   
startswithr   
ValueErrordebug_loggingrun_taskr#   r$   r   logrN   r(   r   r&   r%   )rC   msgansrP   rQ   s        rD   startzBaseExtensionApp.start   s2   < 	"DL33D99 	"ACS//!!! 	 	--//C t( %)^%;TTT^AS
( L8 $ 0"&"4	   "&"3)!] +	   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A3CCCc                     d S r@    rC   s    rD   rU   zBaseExtensionApp.run_task   s    rF   c                 N    | j                             d| dt           d          S )Nz[33m(Deprecated) z

z [0m)rV   warningLABEXTENSION_COMMAND_WARNING)rC   rW   s     rD   deprecation_warningz$BaseExtensionApp.deprecation_warning   s3    xSCSS-ISSS
 
 	
rF   c                     dS )zA default format for messagesz%(message)sr[   r\   s    rD   _log_format_defaultz$BaseExtensionApp._log_format_default   s    }rF   )__name__
__module____qualname__VERSIONrJ   flagsaliasesnamer   r   rN   r
   rH   r   r#   r$   r%   r&   r(   r	   r>   r   rE   rK   rY   rU   r`   rb   r[   rF   rD   r"   r"   r   s       GEGD (:$777Kgb,IJJJG4T0[\\\L _	  I tI  H 4U  L Dt2^___M		O  
 W!""E E #"E
 W_, , ,  *  
 
 

    rF   c                   8    e Zd ZdZeZ eddd          Zd ZdS )InstallLabExtensionAppa  Install labextension(s)

     Usage

        jupyter labextension install [--pin-version-as <alias,...>] <package...>

    This installs JupyterLab extensions similar to yarn add or npm install.

    Pass a list of comma separate names to the --pin-version-as flag
    to use as aliases for the packages providers. This is useful to
    install multiple versions of the same extension.
    These can be uninstalled with the alias you provided
    to the flag, similar to the "alias" feature of yarn add.
    r8   Tz%Pin this version with a certain aliasr9   c                                            d            j                            d           j        pt	          j                    g _        t           fdt           j                  D                       S )NzInstalling extensions with the jupyter labextension install command is now deprecated and will be removed in a future major version of JupyterLab.,c              3      K   | ]Y\  }}t          ||t                    k     r|         nd t          j        j        j        j                            V  Zd S )NrH   rM   rN   r>   )pinrQ   )r   lenr   rH   rV   rN   r>   ).0iargpinned_versionsrC   s      rD   	<genexpr>z2InstallLabExtensionApp.run_task.<locals>.<genexpr>   s       
 
 3 *+c/.B.B*B*BOA&&& L8 $ 0'+'>	  	
 
 

 
 
 
 
 
rF   )r`   rp   split
extra_argsosgetcwdany	enumerate)rC   ru   s   `@rD   rU   zInstallLabExtensionApp.run_task   s       a	
 	
 	
 (..--/:bikk] 
 
 
 
 
 $DO44
 
 
 
 
 	
rF   N)	rc   rd   re   descriptioninstall_aliasesrh   r
   rp   rU   r[   rF   rD   rk   rk      sH        K G
'"T(O
P
P
PC
 
 
 
 
rF   rk   c                       e Zd ZdZeZ eddd          Z eddd          Z eddd          Z	 eddd          Z
 ed	dd
          Zd ZdS )r-   z (developer) Develop labextensionFTzWhether to do a user installr9   z Use the sys.prefix as the prefixzWhether to overwrite fileszWhether to use a symlinkr8   z<Full path to labextensions dir (probably use prefix or user)c           
          | j         pt          j                    g| _         | j         D ]6}t          || j        | j        | j        | j        | j        | j	                   7dS )z Add config for this labextension)user
sys_prefixlabextensions_dirrM   r.   symlinkN)
rx   ry   rz   r   r   r   r   rV   r.   r   )rC   rt   s     rD   rU   zDevelopLabExtensionApp.run_task   sq    /:bikk]? 		 		C#Y?"&"8x.    		 		rF   N)rc   rd   re   r}   develop_flagsrg   r   r   r   r.   r   r
   r   rU   r[   rF   rD   r-   r-      s        4KE4d)GHHHDd4.PQQQJU4.JKKKId4,FGGGG
K      rF   c                       e Zd ZdZ eddd          Z eddd          Z eddd          Z ee	j
                            ed	          dd
          ZdddddZd ZdS )BuildLabExtensionApp(developer) Build labextensionr8   Tz,Sets the url for static assets when buildingr9   FBuild in development modeGenerate source mapsstaging7Directory containing core application package.json filezBuildLabExtensionApp.static_urlz BuildLabExtensionApp.developmentzBuildLabExtensionApp.source_mapzBuildLabExtensionApp.core_path)z
static-urldevelopment
source-map	core-pathc                     | j         pt          j                    g| _         t          | j         d         | j        | j        | j        pd | j        | j        pd            d S )Nr   )rM   r   
static_url
source_map	core_path)	rx   ry   rz   r   rV   r   r   r   r   r\   s    rD   rU   zBuildLabExtensionApp.run_task#  sg    /:bikk]OA8(.$n,	
 	
 	
 	
 	
 	
rF   N)rc   rd   re   r}   r
   r   r   r   r   ry   pathjoinr   r   rh   rU   r[   rF   rD   r   r     s        2KD/]^^^J$uT0KLLLKeD/EFFFJ
T9%%F  I 8975	 G	
 	
 	
 	
 	
rF   r   c                       e Zd ZdZ eddd          Z eddd          Z eej	        
                    ed          dd          Zd	d
ddZd ZdS )WatchLabExtensionApp(developer) Watch labextensionTr   r9   Fr   r   r   zWatchLabExtensionApp.core_pathz WatchLabExtensionApp.developmentzWatchLabExtensionApp.source_map)r   r   r   c                     | j         pt          j                    g| _         | j        }t	          | j         d         || j        | j        | j        | j        pd            d S )Nr   )rM   r   r   r   )	rx   ry   rz   r>   r    rV   r   r   r   )rC   r>   s     rD   rU   zWatchLabExtensionApp.run_taskB  si    /:bikk]!4OA8(n,	
 	
 	
 	
 	
 	
rF   N)rc   rd   re   r}   r   r   r   r
   ry   r   r   r   r   rh   rU   r[   rF   rD   r   r   /  s        2K$tD/JKKKKeD/EFFFJ
T9%%F  I 697 G

 

 

 

 

rF   r   c                   8    e Zd ZdZeZ eddd          Zd ZdS )r/   Update labextension(s)FTz Whether to update all extensionsr9   c                 @   |                      d           | j        s#| j        s| j                            d           dS t          | j        | j        | j        | j                  | j        rt          d          S t          fd| j        D                       S )NzUpdating extensions with the jupyter labextension update command is now deprecated and will be removed in a future major version of JupyterLab.zESpecify an extension to update, or use --all to update all extensionsFro   Tall_rQ   c              3   :   K   | ]}t          |           V  dS ))ri   rQ   N)r   )rr   rt   rQ   s     rD   rv   z1UpdateLabExtensionApp.run_task.<locals>.<genexpr>f  s1      bb3#+FFFbbbbbbrF   )r`   r0   rx   rV   r^   r   rH   rN   r>   r   r{   rC   rQ   s    @rD   rU   zUpdateLabExtensionApp.run_taskU  s       ^	
 	
 	
 x 	 	HW   5 L8(#6	
 
 
 8 	H#;GGGGbbbbRVRabbbbbbrF   N)	rc   rd   re   r}   update_flagsrg   r   r0   rU   r[   rF   rD   r/   r/   O  sI        *KE
$uT(J
K
K
KCc c c c crF   c                   4    e Zd ZdZ eddd          Zd ZdS )LinkLabExtensionAppz
    Link local npm packages that are not lab extensions.

    Links a package to the JupyterLab build process. A linked
    package is manually re-installed from its source location when
    `jupyter lab build` is run.
    Tr<   r9   c                     | j         pt          j                    g| _         t          | j        | j        | j        | j                  t          fd| j         D                       S )NrH   rM   r>   rN   c              3   :   K   | ]}t          |           V  dS rQ   N)r   rr   rt   optionss     rD   rv   z/LinkLabExtensionApp.run_task.<locals>.<genexpr>{  s0      UUc<999UUUUUUrF   	rx   ry   rz   r   rH   rV   r>   rN   r{   rC   r   s    @rD   rU   zLinkLabExtensionApp.run_tasks  sj    /:bikk]L8#6(	
 
 
 UUUUT_UUUUUUrF   N)rc   rd   re   r}   r   r#   rU   r[   rF   rD   r   r   i  sH        K 4T0[\\\LV V V V VrF   r   c                       e Zd ZdZd ZdS )UnlinkLabExtensionAppzUnlink packages by name or pathc                     | j         pt          j                    g| _         t          | j        | j        | j        | j                  t          fd| j         D                       S )Nr   c              3   :   K   | ]}t          |           V  dS r   )r   r   s     rD   rv   z1UnlinkLabExtensionApp.run_task.<locals>.<genexpr>  s0      WW>#7;;;WWWWWWrF   r   r   s    @rD   rU   zUnlinkLabExtensionApp.run_task  sj    /:bikk]L8#6(	
 
 
 WWWWtWWWWWWrF   N)rc   rd   re   r}   rU   r[   rF   rD   r   r   ~  s-        3KX X X X XrF   r   c                   8    e Zd ZdZeZ eddd          Zd ZdS )r1   z!Uninstall labextension(s) by nameFTz#Whether to uninstall all extensionsr9   c                                            d            j        pt          j                    g _        t	           j         j         j         j                  t           fd j        D                       S )NzUninstalling extensions with the jupyter labextension uninstall command is now deprecated and will be removed in a future major version of JupyterLab.r   c              3   F   K   | ]}t          |j                   V  dS )r   N)r   r0   )rr   rt   r   rC   s     rD   rv   z4UninstallLabExtensionApp.run_task.<locals>.<genexpr>  sF       
 
MP$(HHH
 
 
 
 
 
rF   )
r`   rx   ry   rz   r   rH   rV   r>   rN   r{   r   s   `@rD   rU   z!UninstallLabExtensionApp.run_task  s       e	
 	
 	
 /:bikk]L8#6(	
 
 
  
 
 
 
 
TXTc
 
 
 
 
 	
rF   N)	rc   rd   re   r}   uninstall_flagsrg   r   r0   rU   r[   rF   rD   r1   r1     sD        5KE
$uT(M
N
N
NC
 
 
 
 
rF   c                   ^    e Zd ZdZ edd                              d          ZeZd Z	dS )	r2   z List the installed labextensionsFzIncrease verbosity level.r=   Tr:   c           	      |    t          t          | j        | j        | j        | j        | j                             d S )N)rH   rM   rN   r>   r3   r   )r   r   rH   rV   rN   r>   r3   r\   s    rD   rU   zListLabExtensionsApp.run_task  sP    "x ,#'#:  	
 	
 	
 	
 	
 	
rF   N)
rc   rd   re   r}   r   tagr3   
list_flagsrg   rU   r[   rF   rD   r2   r2     sS        4Kd5:;;;??t?LLGE	
 	
 	
 	
 	
rF   c                   ^    e Zd ZdZeZ edd                              d          Zd Z	dS )	EnableLabExtensionsAppzEnable labextension(s) by namer   z2Level at which to enable: sys_prefix, user, systemr=   Tr   c                      t           j         j         j         j                   fd j        D              d S )Nro   c                 >    g | ]}t          |j                   S )rQ   r4   )r   r4   rr   rt   rQ   rC   s     rD   
<listcomp>z3EnableLabExtensionsApp.run_task.<locals>.<listcomp>  :     	
 	
 	
 SkLLL	
 	
 	
rF   r   rH   rV   rN   r>   rx   r   s   `@rD   rU   zEnableLabExtensionsApp.run_task  j     L8(#6	
 
 
	
 	
 	
 	
 	
	
 	
 	
 	
 	
 	
rF   N)
rc   rd   re   r}   enable_aliasesrh   r
   r   r4   rU   r[   rF   rD   r   r     [        2KGGL'[\\\`` a  E

 

 

 

 

rF   r   c                   ^    e Zd ZdZeZ edd                              d          Zd Z	dS )	DisableLabExtensionsAppzDisable labextension(s) by namer   z3Level at which to disable: sys_prefix, user, systemr=   Tr   c                      t           j         j         j         j                   fd j        D               j                            d           d S )Nro   c                 >    g | ]}t          |j                   S r   )r   r4   r   s     rD   r   z4DisableLabExtensionsApp.run_task.<locals>.<listcomp>  s:     	
 	
 	
 c{$*MMM	
 	
 	
rF   a   Starting with JupyterLab 4.1 individual plugins can be re-enabled in the user interface. While all plugins which were previously disabled have been locked, you need to explicitly lock any newly disabled plugins by using `jupyter labextension lock` command.)r   rH   rV   rN   r>   rx   infor   s   `@rD   rU   z DisableLabExtensionsApp.run_task  s     L8(#6	
 
 
	
 	
 	
 	
 	
	
 	
 	
 	
 	N	
 	
 	
 	
 	
rF   N)
rc   rd   re   r}   disable_aliasesrh   r
   r   r4   rU   r[   rF   rD   r   r     s[        3KGGL'\]]]aa b  E
 
 
 
 
rF   r   c                   ^    e Zd ZdZeZ edd                              d          Zd Z	dS )	LockLabExtensionsAppzLock labextension(s) by namer   z0Level at which to lock: sys_prefix, user, systemr=   Tr   c                      t           j         j         j         j                   fd j        D              d S )Nro   c                 >    g | ]}t          |j                   S r   )r   r4   r   s     rD   r   z1LockLabExtensionsApp.run_task.<locals>.<listcomp>  s*    cccCDJ	G	G	GcccrF   r   r   s   `@rD   rU   zLockLabExtensionsApp.run_task  sX     L8(#6	
 
 
 	dccccSWSbccccccrF   N)
rc   rd   re   r}   lock_aliasesrh   r
   r   r4   rU   r[   rF   rD   r   r     s`        0KGGL'YZZZ^^ _  Ed d d d drF   r   c                   ^    e Zd ZdZeZ edd                              d          Zd Z	dS )	UnlockLabExtensionsAppzUnlock labextension(s) by namer   z2Level at which to unlock: sys_prefix, user, systemr=   Tr   c                      t           j         j         j         j                   fd j        D              d S )Nro   c                 >    g | ]}t          |j                   S r   )r   r4   r   s     rD   r   z3UnlockLabExtensionsApp.run_task.<locals>.<listcomp>  r   rF   r   r   s   `@rD   rU   zUnlockLabExtensionsApp.run_task  r   rF   N)
rc   rd   re   r}   unlock_aliasesrh   r
   r   r4   rU   r[   rF   rD   r   r     r   rF   r   c                   8    e Zd ZdZeZ eddd          Zd ZdS )r*   zCheck labextension(s) by nameFTz;Whether it should check only if the extensions is installedr9   c                      t           j         j         j         j                  t           fd j        D                       }|s                     d           d S d S )Nro   c              3   F   K   | ]}t          |j                   V  dS ))r,   rQ   N)r   r+   r   s     rD   rv   z1CheckLabExtensionsApp.run_task.<locals>.<genexpr>  sR       
 
  t?[  
 
 
 
 
 
rF   r   )r   rH   rV   rN   r>   r0   rx   exit)rC   all_enabledrQ   s   ` @rD   rU   zCheckLabExtensionsApp.run_task  s     L8(#6	
 
 
  
 
 
 
 
 	
 
 
 
 
  	IIaLLLLL	 	rF   N)	rc   rd   re   r}   check_flagsrg   r   r+   rU   r[   rF   rD   r*   r*     sM        1KE"&$J# # #    rF   a  
jupyter labextension list                        # list all configured labextensions
jupyter labextension install <extension name>    # install a labextension
jupyter labextension uninstall <extension name>  # uninstall a labextension
jupyter labextension develop                     # (developer) develop a prebuilt labextension
jupyter labextension build                       # (developer) build a prebuilt labextension
jupyter labextension watch                       # (developer) watch a prebuilt labextension
c                        e Zd ZdZdZeZdZeZ	e
dfedfedfedfedfed	fed
fedfedfedfedfedfedfedfdZ fdZ xZS )LabExtensionAppz-Base jupyter labextension command entry pointzjupyter labextensionzWork with JupyterLab extensionszInstall labextension(s)r   zUninstall labextension(s)zList labextensionszLink labextension(s)zUnlink labextension(s)zEnable labextension(s)zDisable labextension(s)zLock labextension(s)zUnlock labextension(s)zCheck labextension(s)z#(developer) Develop labextension(s)r   r   )installupdate	uninstalllistlinkunlinkenabledisablelockunlockcheckdevelopr   watchc                     t                                                       d                    t          | j                            }|                     d|            dS )z)Perform the App's functions as configuredz, z'Please supply at least one subcommand: N)superrY   r   sortedsubcommandsr   )rC   subcmds	__class__s     rD   rY   zLabExtensionApp.startI  sS     ))F4#34455		EGEEFFFFFrF   )rc   rd   re   __doc__ri   rf   rJ   r}   	_EXAMPLESexamplesrk   r/   r1   r2   r   r   r   r   r   r   r*   r-   r   r   r   rY   __classcell__)r   s   @rD   r   r   0  s        77!DG3KH +,EF(*BC.0KL%';<$&<=(*BC)+CD+-FG%'=>)+CD')@A*,QR&(HI&(HI K"G G G G G G G G GrF   r   __main__)Lr   ry   sysr   jupyter_core.applicationr   r   r   	traitletsr   r   r	   r
   r   jupyterlab.coreconfigr   jupyterlab.debuglogr   commandsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   federated_labextensionsr   r   r    labappr!   dictrg   r   r   r   r   r   rh   r~   r   r   r   r   rf   r_   r"   rk   r-   r   r   r/   r   r   r1   r2   r   r   r   r   r*   r   r   launch_instancemainrc   r   r[   rF   rD   <module>r     s   ( (
 
			 



       I I I I I I I I I I < < < < < < < < < < < < < < , , , , , , 1 1 1 1 1 1                                 " e d d d d d d d d d      Z.%01.j 
 +t,- k 
 *e,-)m 
 .$/02g
 /4010o 
 d5kk<dCD/K 
 UT23k 
 tE{{udm,U 
 $u++%/ 
 T%[[
i./
9 
 $|

/	 3 1
 > $w--$@  !g8w $w--: tG}}4W g8w 
/

  L Q Q Q Q Qz#4 Q Q Qh&
 &
 &
 &
 &
- &
 &
 &
R    -   <
 
 
 
 
+ 
 
 
D
 
 
 
 
+ 
 
 
@c c c c c, c c c4V V V V V* V V V*X X X X X, X X X
 
 
 
 
/ 
 
 
.
 
 
 
 
+ 
 
 
"
 
 
 
 
- 
 
 
*
 
 
 
 
. 
 
 
6d d d d d+ d d d$
 
 
 
 
- 
 
 
*    ,   6	 G  G  G  G  Gj  G  G  GF &zCHTTVV rF   