URL: https://linuxfr.org/news/sortie-d-ipython-en-version-2-0 Title: Sortie d’IPython en version 2.0 Authors: mbussonn palm123, BAud, Benoît Sibaud, Jiehong, Davy Defaud, jcr83, NeoX, Nonolapéro et Nÿco Date: 2014年04月02日T18:38:34+02:00 License: CC By-SA Tags: ipython, python et nbviewer Score: 34 IPython est une console alternative principalement tournée vers l’exploration interactive des données. Comme tous les 6 mois maintenant (avec 3 mois de retard), la nouvelle version est publiée. Je vous invite à aller lire les dépêches précédentes si vous ne connaissez pas IPython. Au‐delà d’une simple console Python, elle est aussi agnostique au niveau du langage en offrant une console Qt, un _notebook_ Web (interface Web riche) et l’architecture pour y écrire dans son dialecte préféré. Pour rappel, IPython 2.0 est la seconde des quatre versions qui seront publiées sur les fonds donnés par la fondation Sloan sur une durée de deux ans. Je vais ici vous présenter quelques nouveautés qui ont été développées lors des 9 derniers mois et vous donner un avant‐goût de ce qui est prévu pour le mois à venir. Merci aux participants qui m’ont aidé à rédiger cette dépêche, corrigeant les fautes d’orthographe et les anglicismes. ---- [Nouveautés de la version 2.0](http://ipython.org/ipython-doc/2/whatsnew/version2.0.html) [Dépêche LinuxFr.org : Sortie de la version 1.0 ](https://linuxfr.org/news/sortie-d-ipython-1-0) [Site officiel IPython.org](http://ipython.org/#announcements) [Annonce sur la liste de diffusion](http://mail.scipy.org/pipermail/ipython-dev/2014-April/013659.html) [Ce qu’est le Notebook IPython (site officiel)](http://ipython.org/notebook.html) [IPython on Pypi](https://pypi.python.org/pypi/ipython) ---- Une fois n'est pas coutume, les notes de version sont disponibles sur le site [web d’IPython](http://ipython.org/ipython-doc/2/whatsnew/version2.0.html), mais cette fois-ci la documentation officielle s'étoffe et utilise [IPython Notebook viewer](http://nbviewer.org) pour afficher les [répertoires d'exemples](http://nbviewer.ipython.org/github/ipython/ipython/blob/master/examples/Index.ipynb). Ces notes sont plus complètes que la présente dépêche, mais on notera tout de même (cf. plus loin) que les _Notebooks_ exportés en HTML avec `nbconvert` ou _Nbviewer_ n'affichent pas les widgets et nécessitent d'être exécutés en local avec la nouvelle version. # En deux mots Cette version de IPython a perdu son statut de _rc_ le 2 avril (pour éviter un poisson), après plus de 8 mois de travail. On notera l'obligation d'utiliser Python 2.7 ou ≥ 3.3 (on s'excuse pour les gens encore sous 2.6 et 3.2), mais cela a permis l'unification du code source qui fonctionne indifféremment sur les deux versions majeures de l'interpréteur, sans avoir recours à des outils tels que `2to3`. Les grandes nouveautés sont toutes pour le Notebook : - _Widget_ interactif javascript ; - navigation du disque dur ; - URL persistante ; - Interface modale ; - augmentation de la sécurité. En chiffres, ou plutôt en nombres (arrondis à chaque fois) : - 8 mois de travail ; - 650 demandes d'intégrations pour 4000 modifications ; - 400 bogues fermés ; - 100 contributeurs (merci à eux !). # Ce que vous devez savoir ## Interface modale Les raccourcis clavier de l'interface du Notebook ont **complètement** changé. Les premières interactions avec le Notebook risqueront d'être bien difficiles (comparez à la première fois où vous avez utilisé Vim). Du fait des limitations des navigateurs web, ce changement était nécessaire, et implique quelques heures d'ajustement pour les utilisateurs déjà habitués aux raccourcis clavier. Allez faire un tour dans le menu d'aide si vous êtes perdu. Tout comme beaucoup d'éditeurs modaux, vous pouvez vous trouver entre deux états, soit vous éditez une cellule et le clavier se comporte comme dans n'importe quel éditeur de texte classique (edit mode, utilisez Enter pour y accéder), ou en mode commande (Esc) les touches du clavier sont alors assignées à des actions, comme `x` pour couper, `j` pour sélectionner la cellule suivante... [une introduction](http://nbviewer.ipython.org/github/ipython/ipython/blob/2.x/examples/Notebook/User%20Interface.ipynb) est bien sûr disponible pour les anglophones, lecture vivement conseillée, et sauvegarde préalable de vos `.ipynb` aussi. ## Sécurité Au sein de l'équipe de développement d’IPython, le _Notebook_ tel que présent dans la 1.0 est comparé au bouton qui déclenche une bombe atomique enveloppée dans un joli bonbon qu'on tendrait à un nourrisson. Les capacités de destruction et de mauvaise utilisation sont particulièrement importantes. C'est pourquoi un modèle de sécurité a été adopté. À partir de maintenant, chaque _Notebook_ est signé numériquement avec une clé privée générée au premier lancement, et tout chargement d'un _Notebook_ dont la signature n'est pas valide désactive un grand nombre de fonctionnalités. En pratique, cela signifie que si M. ou Mme MichuTM vous envoient un _Notebook_, au chargement de celui-ci, vous ne pourrez voir que les jolis HTML et JavaScript qui affichent des chiots animés. Vous devrez ré-exécuter le _Notebook_ dans son intégralité, ou explicitement lui faire confiance. Cela ne signifie bien sûr pas que la sécurité est infaillible, on appréciera aussi tout retour d'expérience de personnes plus compétentes au niveau cryptographie. On notera que le système est à priori extensible, donc oui, utilisateur motivé de LinuxFr.org, tu devrais pouvoir écrire une extension qui utilise GPG. # Le Beau et Brillant ## Navigation du disque dur Le schéma URL est maintenant REST, et persistant ! Vous n'avez plus besoin que de lancer un seul `notebook server` pour parcourir tout votre disque dur ! Même si on évite de servir des fichiers qui sont dans `~/.ssh`, ne lancez pas le serveur n'importe où dans votre arborescence ! Vous pouvez aussi maintenant utiliser la fonction marque-page de votre butineur pour retrouver rapidement tous vos _Notebooks_. ![nouvelle page d'accueil](http://ipython.org/ipython-doc/2/_images/treeview.png) ## Les widgets javascript C'est beau, ça bouge, ça se manipule à la souris et c'est simple à utiliser, mais ça reste encore à peaufiner. Il vous suffit d'un simple décorateur sur une fonction pour que les paramètres de celle-ci soient accessibles avec de jolis éléments de GUI et au moindre changement le résultat se met à jour. Un peu comme ce bel [exemple] (http://jakevdp.github.io/blog/2013/12/05/static-interactive-widgets/) de Jake Van Der Plas. Sous le capot c'est un protocole qui décrit une synchronisation, et ne suppose pas l'utilisation de JavaScript. Sachant qu’un greffon pour Emacs permet déjà de se connecter au _Notebook_, rien ne vous empêche de réaliser les widgets pour Emacs en utilisant lisp. Ceci devrait aussi permettre aux autres langages de réutiliser les mêmes widgets. Pour les impatients, vous trouverez [une vidéo de B. Granger lors de PyData 2014](http://vimeo.com/79832657#t=34m), avec une démonstration des widgets (la vidéo démarre à la 34 ème minute). ![capture d'ecran des widget](http://ipython.org/ipython-doc/2/_images/widgets.png) Avec l'implémentation actuelle, la création de widget et leur affichage nécessite un noyau actif. De ce fait, l'export de Notebook en HTML ne conserve pas les _widgets_. _Nbviewer_ utilisant l'export en HTML, vous ne verrez donc pas de _widgets_ à moins de télécharger le _Notebook_ qui vous intéresse et de l'exécuter en local (on travaille dessus). # La suite ## Multi-language Pour ceux qui n'auraient pas suivi, ou qui liraient en diagonal, IPython permet d'écrire en utilisant un autre langage que Python, vous pouvez probablement écrire en quelques lignes un noyau [Evenja](//linuxfr.org/news/concours-evenja-cafe-un-nouveau-paradigme-de-programmation), en plus des [nombreux noyaux déjà existants](https://github.com/ipython/ipython/wiki/Projects-using-IPython#list-of-some-ipython-compatible-kernels), l'un des soucis étant qu'il faut démarrer autant de serveurs que de langages demandés. La version 3.0 devrait commencer à remédier à ce problème en proposant de choisir parmi les noyaux installés lors de l'ouverture d'un _Notebook_. ## Multi-utilisateur On ne parle pas encore de collaboration en direct, mais de la possibilité de démarrer un seul serveur pour de multiples utilisateurs dans un premier temps. Le but initial ne sera pas de permettre un déploiement pour des centaines d'utilisateurs simultanés, mais plus de l'ordre de grandeur d'un petit laboratoire de recherche, ou dans le cadre d'un enseignant utilisant le _Notebook_ pour ses élèves. Cette fonction ne sera probablement pas complète pour la version 3.0 (été 2014), mais devrait, on l'espère, être utilisable pour 4.0 (hiver 2014). # Le reste ## Les réunions Tous les jeudis, en direct sur youtube/Google Hangout vers 19h, réunion technique sur l'avancement du projet et le futur. Si vous voulez parler avec nous de votre projet d'amélioration, demandez une invitation. Un mardi par mois, à 19h aussi, venez poser vos questions, on fera de notre mieux pour vous aider à faire ce que vous voulez avec IPython (en anglais, _of course_). ## Nbviewer Nbviewer a été déplacé de Heroku à Rackspace qui nous offre une réduction sur le prix des serveurs non négligeable, et Kyle Kelley s'occupe du déploiement ; si vous le croisez, lui ou Jesse Noller, remerciez-les !

AltStyle によって変換されたページ (->オリジナル) /