Skip to content

extension

PtiKyou edited this page Nov 30, 2016 · 3 revisions

Une extension sur jupyter est un module complémentaire qui va greffer à jupyter de nouvelles fonctionnalités. Elles sont généralement écrites en Javascript et son chargées localement sur votre ordinateur.

Nous vous invitons à regarder sur le GitHub de NB_Extension pour y trouver une grande collection d' extensions déjà existantes.

Comment fonctionne notre extension sur Jupyter ?

En chargeant l[[extension]] sageDragon jupyter copie sageDragon.js dans le dossier caché /home/scra/.local/share/jupyter/nbextensions/sagedragon.js' exemple

La fonction activate_extension est appelé ce qui permet de load sageDragon en lui indiquant le pattern de localisation de notre fichier js.

var activate_extension = function (self) { //Install JS extensions path = os.path.abspath(os.path.join.dirname("notebook", os.path.padir)); install_nbextension(path, overwrite = True, user = True); js_cm = ConfigManager(); // activer l'extension js_cm.update('notebook', {"load_extensions": {'sageDragon/static/js/notebook ': True}}) }; return { load_ipython_extension: load_ipython_extension };

Ensuite la fonction load_extension dans le fichier utils.js est appelé : fonctions_utile /** * Load a single extension. * @param {string} extension - extension path. * @return {Promise} that resolves to an extension module handle */ var load_extension = function (extension) { return new Promise(function(resolve, reject) { var ext_path = "nbextensions/" + extension; requirejs([ext_path], function(module) { if (!is_loaded(extension)) { console.log("Loading extension: " + extension); if (module.load_ipython_extension) { Promise.resolve(module.load_ipython_extension()).then(function() { resolve(module); }).catch(reject); } extensions_loaded.push(ext_path); } else { console.log("Loaded extension already: " + extension); resolve(module); } }, function(err) { reject(err); }); }); };

Clone this wiki locally