ó
¬X[c           @  sË  d  Z  d d l m Z d d l 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 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 e e	 ƒ Z i i e d	 6d
 6d f e d <i i e d 6d
 6d f e d <i i e d 6d
 6d f e d <e e ƒ Z i i e d 6d 6d f e d <e e ƒ Z  i i e d 6d 6d f e  d <e e
 ƒ Z! d e! d <e ƒ  Z" d
 e f d „  ƒ  YZ# d e# f d „  ƒ  YZ$ d e# f d „  ƒ  YZ% d  e# f d! „  ƒ  YZ& d" e# f d# „  ƒ  YZ' d$ e# f d% „  ƒ  YZ( d& e# f d' „  ƒ  YZ) d( e# f d) „  ƒ  YZ* d* e# f d+ „  ƒ  YZ+ d e# f d, „  ƒ  YZ, d- Z- d. e f d/ „  ƒ  YZ. e. j/ Z0 e1 d0 k rÇe j2 e0 ƒ  ƒ n  d S(1   s"   Jupyter LabExtension Entry Points.iÿÿÿÿ(   t   print_functionN(   t   copy(   t
   JupyterAppt
   base_flagst   base_aliases(   t   Boolt   Unicodei   (   t   install_extensiont   uninstall_extensiont   list_extensionst   enable_extensiont   disable_extensiont   check_extensiont   link_packaget   unlink_packaget   buildt   get_app_versiont   HEREt   update_extensiont   should_buildt   BaseExtensionApps(   Defer building the app after the action.s   no-buildt	   dev_builds   Build in Development modes	   dev-buildt   should_cleans,   Cleanup intermediate files after the action.t   cleant   should_check_installed_onlyt   CheckLabExtensionsApps)   Check only if the extension is installed.t	   installedt   allt   UpdateLabExtensionApps   Update all extensionss   BaseExtensionApp.app_dirs   app-dirc           B  s•   e  Z e Z e Z e Z e d  d e d d ƒZ e	 e d e d d ƒZ
 e	 e d e d d ƒZ e	 e d e d d ƒZ d „  Z d „  Z d	 „  Z RS(
   t    t   configt   helps   The app directory to targets)   Whether to build the app after the actions:   Whether to build in dev mode (defaults to production mode)sF   Whether temporary files should be cleaned up after building jupyterlabc      	   C  s(  |  j  r* |  j  j t ƒ r* t d ƒ ‚ n  y_ |  j ƒ  } | rˆ |  j rˆ |  j sW d n d } t d |  j  d |  j d |  j	 d | ƒ n  Wn˜ t
 k
 r#} t j ƒ  \ } } } t j | j | | ƒ } x | D] } |  j	 j | ƒ qÏ W|  j	 j d ƒ |  j	 j | d	 j ƒ  ƒ t j d
 ƒ n Xd  S(   Ns-   Cannot run lab extension commands in core apps
   build:prodR   t   app_dirt   clean_stagingt   loggert   commands&   
Errored, use --debug for full output:iÿÿÿÿi   (   R    t
   startswithR   t
   ValueErrort   run_taskR   R   R   R   t   logt	   Exceptiont   syst   exc_infot	   tracebackt   format_exceptiont	   __class__t   debugt   errort   stript   exit(   t   selft   ansR#   t   ext   _t   exc_tracebackt   msgt   line(    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyt   startK   s     c         C  s   d  S(   N(    (   R2   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   ]   s    c         C  s   d S(   s   A default format for messagess   %(message)s(    (   R2   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyt   _log_format_default`   s    (   t   __name__t
   __module__t   VERSIONt   versiont   flagst   aliasesR   t   TrueR    R   R   t   FalseR   R   R9   R&   R:   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR   :   s   						t   InstallLabExtensionAppc           B  s   e  Z d  Z d „  Z RS(   s   Install labextension(s)c         C  sP   |  j  p t j ƒ  g |  _  t g  |  j  D]! } t | |  j d |  j ƒ^ q( ƒ S(   NR"   (   t
   extra_argst   ost   getcwdt   anyR   R    R'   (   R2   t   arg(    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   h   s    (   R;   R<   t   descriptionR&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRC   e   s   c           B  s5   e  Z d  Z e Z e e d e d d ƒZ d „  Z	 RS(   s   Update labextension(s)R   R   s    Whether to update all extensionsc      
   C  s‹   |  j  r( |  j r( |  j j d ƒ t S|  j  rP t d t d |  j d |  j ƒ St g  |  j D]' } t d | d |  j d |  j ƒ ^ q] ƒ S(   NsE   Specify an extension to update, or use --all to update all extensionst   all_R    R"   t   name(	   R   RD   R'   t   warnRB   R   RA   R    RG   (   R2   RH   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   w   s    	(
   R;   R<   RI   t   update_flagsR?   R   RB   RA   R   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR   p   s
   	t   LinkLabExtensionAppc           B  s/   e  Z d  Z e e d e d d ƒZ d „  Z RS(   sà   
    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.
    R   R   s)   Whether to build the app after the actionc         C  sP   |  j  p t j ƒ  g |  _  t g  |  j  D]! } t | |  j d |  j ƒ^ q( ƒ S(   NR"   (   RD   RE   RF   RG   R   R    R'   (   R2   RH   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   Ž   s    (   R;   R<   RI   R   RA   R   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRN   ƒ   s   	t   UnlinkLabExtensionAppc           B  s   e  Z d  Z d „  Z RS(   s   Unlink packages by name or pathc         C  sP   |  j  p t j ƒ  g |  _  t g  |  j  D]! } t | |  j d |  j ƒ^ q( ƒ S(   NR"   (   RD   RE   RF   RG   R   R    R'   (   R2   RH   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   ™   s    (   R;   R<   RI   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRO   –   s   t   UninstallLabExtensionAppc           B  s   e  Z d  Z d „  Z RS(   s!   Uninstall labextension(s) by namec         C  sP   |  j  p t j ƒ  g |  _  t g  |  j  D]! } t | |  j d |  j ƒ^ q( ƒ S(   NR"   (   RD   RE   RF   RG   R   R    R'   (   R2   RH   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   ¤   s    (   R;   R<   RI   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRP   ¡   s   t   ListLabExtensionsAppc           B  s   e  Z d  Z d „  Z RS(   s    List the installed labextensionsc         C  s   t  |  j d |  j ƒd  S(   NR"   (   R	   R    R'   (   R2   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   ¯   s    (   R;   R<   RI   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRQ   ¬   s   t   EnableLabExtensionsAppc           B  s   e  Z d  Z d „  Z RS(   s   Enable labextension(s) by namec         C  s3   g  |  j  D]! } t | |  j d |  j ƒ^ q
 d  S(   NR"   (   RD   R
   R    R'   (   R2   RH   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   ¶   s    (   R;   R<   RI   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRR   ³   s   t   DisableLabExtensionsAppc           B  s   e  Z d  Z d „  Z RS(   s   Disable labextension(s) by namec         C  s3   g  |  j  D]! } t | |  j d |  j ƒ^ q
 d  S(   NR"   (   RD   R   R    R'   (   R2   RH   (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   ¾   s    (   R;   R<   RI   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRS   »   s   c           B  s5   e  Z d  Z e Z e e d e d d ƒZ d „  Z	 RS(   s   Check labextension(s) by nameR   R   s;   Whether it should check only if the extensions is installedc           s6   t  ‡  f d †  ˆ  j Dƒ ƒ } | s2 t d ƒ n  d  S(   Nc         3  s0   |  ]& } t  | ˆ  j ˆ  j d  ˆ  j ƒVq d S(   R"   N(   R   R    R   R'   (   t   .0RH   (   R2   (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pys	   <genexpr>Ì   s   i   (   R   RD   R1   (   R2   t   all_enabled(    (   R2   s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR&   Ê   s
    (
   R;   R<   RI   t   check_flagsR?   R   RB   RA   R   R&   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR   Ã   s
   	sì   
jupyter labextension list                        # list all configured labextensions
jupyter labextension install <extension name>    # install a labextension
jupyter labextension uninstall <extension name>  # uninstall a labextension
t   LabExtensionAppc           B  s¤   e  Z d  Z d Z e Z d Z e Z e	 d e
 d f d e d f d e d f d	 e d
 f d e d f d e d f d e d f d e d f d e d f ƒ 	Z d „  Z RS(   s-   Base jupyter labextension command entry points   jupyter labextensions   Work with JupyterLab extensionst   installs   Install labextension(s)t   updates   Update labextension(s)t	   uninstalls   Uninstall labextension(s)t   lists   List labextensionst   links   Link labextension(s)t   unlinks   Unlink labextension(s)t   enables   Enable labextension(s)t   disables   Disable labextension(s)t   checks   Check labextension(s)c         C  s@   t  t |  ƒ j ƒ  d j t |  j ƒ ƒ } t j d | ƒ d S(   s)   Perform the App's functions as configureds   , s)   Please supply at least one subcommand: %sN(   t   superRW   R9   t   joint   sortedt   subcommandsR)   R1   (   R2   t   subcmds(    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyR9   ï   s    (   R;   R<   t   __doc__RK   R=   R>   RI   t	   _examplest   examplest   dictRC   R   RP   RQ   RN   RO   RR   RS   R   Rd   R9   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyRW   Ü   s    t   __main__(3   Rf   t
   __future__R    RE   R)   R+   R   t   jupyter_core.applicationR   R   R   t	   traitletsR   R   t   commandsR   R   R	   R
   R   R   R   R   R   R   R   R   Ri   R?   RB   RA   RV   RM   R@   R=   R   RC   R   RN   RO   RP   RQ   RR   RS   R   Rg   RW   t   launch_instancet   mainR;   R1   (    (    (    s7   lib/python2.7/site-packages/jupyterlab/labextensions.pyt   <module>   sN   R
	+	