def install_extensions(enable=True, user=False): """Register ipyparallel clusters tab as notebook extensions Toggle with enable=True/False. """ import notebook from ipyparallel.util import _v if _v(notebook.__version__) < _v('4.2'): return _install_extension_nb41(enable) from notebook.nbextensions import ( disable_nbextension, enable_nbextension, install_nbextension_python, ) from notebook.serverextensions import toggle_serverextension_python toggle_serverextension_python('ipyparallel', user=user) install_nbextension_python('ipyparallel', user=user) if enable: enable_nbextension('tree', 'ipyparallel/main', user=user) else: disable_nbextension('tree', 'ipyparallel/main')
def run(self): install.run(self) log.info('Attempting to install and enable transmart-aborist extension.') log.info('This can be done manually by running.') log.info(' $ jupyter nbextension install --py tmtk.arborist') log.info(' $ jupyter serverextension enable --py tmtk.arborist') try: import notebook except ImportError: log.info("Cannot find module 'notebook'. Aborting automated install.") return notebook_version = getattr(notebook, '__version__') if notebook_version is None or notebook_version < '5.7.8': log.info("Version of notebook package should be at least 5.7.8 for Arborist, consider:") log.info(" $ pip install --upgrade notebook") log.info('Aborting automated install.') return from notebook.nbextensions import install_nbextension_python, enable_nbextension_python from notebook.serverextensions import toggle_serverextension_python, validate_serverextension enable_nbextension_python('widgetsnbextension', sys_prefix=True) install_nbextension_python('tmtk.arborist', sys_prefix=True, overwrite=True) toggle_serverextension_python('tmtk.arborist', enabled=True, sys_prefix=True) warnings = validate_serverextension('tmtk.arborist') if warnings: [log.warn(warning) for warning in warnings] else: log.info('Extension has been enabled.')
def test_nbextensionpy_uninstall_files(self): self._inject_mock_extension() install_nbextension_python('mockextension', user=True) uninstall_nbextension_python('mockextension', user=True) assert not check_nbextension('_mockdestination/index.js') assert not check_nbextension(['_mockdestination/index.js'])
def add_xunit(self): """ Hack the setup in the middle (after paths, before server) """ super(NBAnacondaCloudTestController, self).add_xunit() with patch.dict(os.environ, self.env.copy()): sys_prefix = True pkg = "nb_anacondacloud" nbextensions.install_nbextension_python(pkg, sys_prefix=sys_prefix) nbextensions.enable_nbextension_python(pkg, sys_prefix=sys_prefix) serverextensions.toggle_serverextension_python( pkg, sys_prefix=sys_prefix) if (self.section == "auth") and self.use_token(): home = os.environ["HOME"] _data_dir = "".join( [self.home.name, dirs.user_data_dir[len(home):]]) with open(TEST_LOG, "a+") as fp: fp.write("\nCopying auth token to {}\n".format(_data_dir)) shutil.copytree(dirs.user_data_dir, _data_dir) patch_auth = (self.section == "auth") and not self.use_token() serverextensions.toggle_serverextension_python( import_name="nb_anacondacloud.tests.patched", enabled=patch_auth, sys_prefix=sys_prefix) serverextensions.toggle_serverextension_python( import_name=pkg, enabled=not patch_auth, sys_prefix=sys_prefix)
def run(self): install.run(self) log.info('Attempting to install and enable transmart-aborist extension.') log.info('This can be done manually by running.') log.info(' $ jupyter nbextension install --py tmtk.arborist') log.info(' $ jupyter serverextension enable --py tmtk.arborist') from notebook import __version__ as notebook_version if notebook_version < '4.2.0': log.info("Version of notebook package should be atleast 4.2.0 for Arborist, consider:") log.info(" $ pip3 install --upgrade notebook") raise RuntimeWarning("Notebook too old for Arborist.") from notebook.nbextensions import install_nbextension_python, enable_nbextension_python from notebook.serverextensions import toggle_serverextension_python, validate_serverextension enable_nbextension_python('widgetsnbextension', sys_prefix=True) install_nbextension_python('tmtk.arborist', sys_prefix=True, overwrite=True) toggle_serverextension_python('tmtk.arborist', enabled=True, sys_prefix=True) warnings = validate_serverextension('tmtk.arborist') if warnings: [log.warn(warning) for warning in warnings] else: log.info('Extension has been enabled.')
def start(self): """Perform the App's actions as configured.""" if self.extra_args: sys.exit('{} takes no extra arguments'.format(self.name)) else: if self._toggle_value: nbextensions.install_nbextension_python( _pkg_name, overwrite=True, symlink=False, user=self.user, sys_prefix=self.sys_prefix, prefix=None, nbextensions_dir=None, logger=None) else: nbextensions.uninstall_nbextension_python( _pkg_name, user=self.user, sys_prefix=self.sys_prefix, prefix=None, nbextensions_dir=None, logger=None) self.toggle_nbextension_python(_pkg_name) self.toggle_server_extension_python(_pkg_name)
def install_nbextensions(self, module, sys_prefix=True, user=False): install_nbextension_python(module=module, sys_prefix=sys_prefix, user=user, overwrite=True) disable_nbextension_python(module=module, sys_prefix=sys_prefix, user=user)
def test_nbextensionpy_enable(self): self._inject_mock_extension('notebook') install_nbextension_python('mockextension', user=True) enable_nbextension_python('mockextension') config_dir = os.path.join(_get_config_dir(user=True), 'nbconfig') cm = BaseJSONConfigManager(config_dir=config_dir) enabled = cm.get('notebook').get('load_extensions', {}).get('_mockdestination/index', False) assert enabled
def test_nbextension_validate(self): # Break the metadata (correct file will still be copied) self._inject_mock_extension('notebook') install_nbextension_python('mockextension', user=True) enable_nbextension_python('mockextension') warnings = validate_nbextension("_mockdestination/index") self.assertEqual([], warnings, warnings)
def install_nbextension(cmd, link=False): from notebook.nbextensions import (install_nbextension_python, enable_nbextension) install_nbextension_python("geonotebook", overwrite=True, sys_prefix=True, symlink=link) enable_nbextension("notebook", "geonotebook/index", sys_prefix=True)
def install_nbextension(): print("Trying to install pyforest nbextension...") try: from notebook import nbextensions except ImportError: print( "Could not install pyforest Jupyter Notebook extension because Jupyter Notebook is not available" ) return nbextensions.install_nbextension_python("pyforest") nbextensions.enable_nbextension_python("pyforest") print("") print("Finished installing the pyforest Jupyter Notebook nbextension") print("Please reload your Jupyter notebook browser window")
def add_xunit(self): """ Hack the setup in the middle (after paths, before server) """ super(NBAnacondaCloudTestController, self).add_xunit() with patch.dict(os.environ, self.env.copy()): sys_prefix = True pkg = "nb_anacondacloud" nbextensions.install_nbextension_python( pkg, sys_prefix=sys_prefix) nbextensions.enable_nbextension_python( pkg, sys_prefix=sys_prefix) serverextensions.toggle_serverextension_python( pkg, sys_prefix=sys_prefix) if (self.section == "auth") and self.use_token(): home = os.environ["HOME"] _data_dir = "".join([ self.home.name, dirs.user_data_dir[len(home):]]) with open(TEST_LOG, "a+") as fp: fp.write("\nCopying auth token to {}\n".format( _data_dir )) shutil.copytree( dirs.user_data_dir, _data_dir ) patch_auth = (self.section == "auth") and not self.use_token() serverextensions.toggle_serverextension_python( import_name="nb_anacondacloud.tests.patched", enabled=patch_auth, sys_prefix=sys_prefix) serverextensions.toggle_serverextension_python( import_name=pkg, enabled=not patch_auth, sys_prefix=sys_prefix)
def test_nbextensionpy_validate(self): self._inject_mock_extension('notebook') paths = install_nbextension_python('mockextension', user=True) enable_nbextension_python('mockextension') meta = self._mock_extension_spec_meta() warnings = validate_nbextension_python(meta, paths[0]) self.assertEqual([], warnings, warnings)
def install_extensions(enable=True): """Register ipyparallel clusters tab as notebook extensions Toggle with enable=True/False. """ from distutils.version import LooseVersion as V import notebook if V(notebook.__version__) < V('4.2'): return _install_extension_nb41(enable) from notebook.nbextensions import install_nbextension_python, enable_nbextension, disable_nbextension from notebook.serverextensions import toggle_serverextension_python toggle_serverextension_python('ipyparallel.nbextension') install_nbextension_python('ipyparallel') if enable: enable_nbextension('tree', 'ipyparallel/main') else: disable_nbextension('tree', 'ipyparallel/main')
def test_nbextensionpy_validate_bad(self): # Break the metadata (correct file will still be copied) self._inject_mock_extension('notebook') paths = install_nbextension_python('mockextension', user=True) enable_nbextension_python('mockextension') meta = self._mock_extension_spec_meta() meta.update(require="bad-require") warnings = validate_nbextension_python(meta, paths[0]) self.assertNotEqual([], warnings, warnings)
def run_nbextension_install(develop): from notebook.nbextensions import install_nbextension_python, enable_nbextension_python, install_nbextension from notebook.serverextensions import toggle_serverextension_python from notebook import version_info # Command: sudo jupyter nbextension enable --py widgetsnbextension print("Enabling geppettoJupyter extensions ...") isEnabled = enable_nbextension_python('widgetsnbextension') if not isEnabled: raise Exception('Problem enabling widgetsnbextension extension') # Command: sudo jupyter nbextension install --py geppettoJupyter print("Installing geppettoJupyter extension ...") install_nbextension_python('geppettoJupyter', symlink=develop) # Command: sudo jupyter nbextension enable --py geppettoJupyter print("Enabling geppettoJupyter extensions ...") isEnabled = enable_nbextension_python('geppettoJupyter') if not isEnabled: raise Exception('Problem enabling geppettoJupyter extension') # Command: jupyter serverextension enable --py geppettoJupyter print("Enabling server extensions ...") toggle_serverextension_python('geppettoJupyter', enabled=True) # Command: sudo jupyter nbextension install s # Command: sudo jupyter nbextension enable overwrite_get_msg_cell print("Installing and enabling additional geppettoJupyter extension ...") install_nbextension( 'org.geppetto.frontend.jupyter/src/geppettoJupyter/overwrite_get_msg_cell.js', symlink=develop) ext_require_path = 'overwrite_get_msg_cell' if version_info[0] > 4: # notebook 5.x from notebook.nbextensions import enable_nbextension enable_nbextension('notebook', ext_require_path) else: # notebook 4.x from notebook.nbextensions import EnableNBExtensionApp EnableNBExtensionApp().toggle_nbextension(ext_require_path)
def run(self): install.run(self) install_nbextension(JS_DIR, overwrite=True, user=True) install_nbextension_python('git_ext') # enable notebook extension out = subprocess.run( 'jupyter nbextension enable --py --sys-prefix git_ext', stdout=subprocess.PIPE, shell=True, check=True) # enable server extension configure_path = os.path.join(jupyter_config_dir(), 'jupyter_notebook_config.json') try: configure = json.load(open(configure_path)) if 'NotebookApp' not in configure: configure['NotebookApp'] = {} configure['NotebookApp'].update({'disable_check_xsrf': True}) if 'nbserver_extensions' not in configure['NotebookApp']: configure['NotebookApp']['nbserver_extensions'] = {} configure['NotebookApp']['nbserver_extensions'].update( {'git_ext': True}) except FileNotFoundError: configure = { 'NotebookApp': { 'nbserver_extensions': { 'git_ext': True }, 'disable_check_xsrf': True } } finally: json.dump(configure, open(configure_path, 'w'), indent=2)
def install_nglview_js_widgets(user=True, symlink=False, overwrite=True, debug=False, **kwargs): """Install nglview-js-widgets nbextension. Parameters ---------- user: bool, default True Install for current user instead of system-wide. symlink: bool, default False Symlink instead of copy (for development). overwrite: bool, default True Overwrite previously-installed files for this extension **kwargs: keyword arguments Other keyword arguments passed to the install_nbextension command """ nglivew_js_dirs = nbextensions.install_nbextension_python('nglview', user=user, symlink=symlink, overwrite=overwrite, **kwargs) if debug: print(nglivew_js_dirs) print([glob(join(my_dir, '*')) for my_dir in nglivew_js_dirs])
'Topic :: Utilities', ], ) if 'install' in argv: import sys x = sys.stdout.write(msg) import site try: import importlib importlib.reload(site) except: reload(site) import latex_envs import notebook.nbextensions as nb user = False sys_prefix = False if "--user" in argv: user = True if "--sys-prefix" in argv: sys_prefix = True x = sys.stdout.write("[Step 2]: Installing the javascript nbextension" + "\n") nb.install_nbextension_python('latex_envs', user=user, sys_prefix=sys_prefix) x = sys.stdout.write("[Step 3]: Enabing the nbextension" + "\n") nb.enable_nbextension_python('latex_envs', user=user, sys_prefix=sys_prefix)
from notebook.notebookapp import main from notebook.nbextensions import install_nbextension_python, enable_nbextension_python from notebook.serverextensions import toggle_serverextension_python import sys import subprocess if __name__ == "__main__": # enable the jupytext server extension toggle_serverextension_python("jupytext", enabled=True) # install and enable the jupytext notebook extension install_nbextension_python("jupytext", user=True) enable_nbextension_python("jupytext") # we have to manually enable the "widgetsnbextension" notebook extension to use ipywidgets inside our hermetic # python interpreter install_nbextension_python("widgetsnbextension", user=True) enable_nbextension_python("widgetsnbextension") sys.exit(main(argv=["--no-browser"]))
def handle_watchdog_event(self, event): """ This is same as ``jupyter nbextension install --user --py --overwrite jupyter_myext``. """ self.log.info('Installing nbextension') install_nbextension_python('jupyter_myext', overwrite=True, user=True)
def install_nbextension(): install_nbextension_python('iclientpy', overwrite=True, symlink=True, sys_prefix=True) enable_nbextension_python('iclientpy', sys_prefix=True)