2A.soft - Jupyter et commandes magiques#
Links: notebook
, html, python
, slides, GitHub
Pour être inventif, il faut être un peu paresseux. Cela explique parfois
la syntaxe peu compréhensible mais réduite de certaines instructions.
Cela explique sans doute aussi que Jupyter
offre la possibilité de définir des commandes
magiques
qu’on peut interpréter comme des raccourcis. %
pour une ligne,
%%
pour une cellule.
from jyquickhelper import add_notebook_menu
add_notebook_menu()
Commande magique#
Ce sont des raccourcis. Si vous n’avez plus envie d’écrire le même code
tous les jours alors peut-être que vous avez envie de créer une commande
magique. C’est une fonctionnalité des notebooks Jupyter. L’exemple
suivant crée une commande magique qui génère une séquence de nombre
aléatoire dans le notebook. On l’appelle RND
. Cela se passe en trois
étapes :
implémentation de la commande
déclaration de la commande (pour Jupyter)
utilisation de la commande
C’est l’objet des trois cellules qui suivent.
import random
from IPython.core.magic import Magics, magics_class, line_magic, cell_magic, line_cell_magic
@magics_class
class CustomMagics(Magics):
@line_magic
def RND(self, line):
return [ random.random() for i in range(0,int(line))]
ip = get_ipython()
ip.register_magics(CustomMagics)
%RND 20
[0.7597340836812444,
0.7417183818784308,
0.5919053129335919,
0.42644466969431216,
0.025703336169412228,
0.37317015957688837,
0.5240186951312955,
0.47640296529847126,
0.9582206394610842,
0.2766903488489415,
0.3163718095585957,
0.2540976883769992,
0.41766681610331,
0.7107081118267403,
0.5675086760409057,
0.23741203524882026,
0.3511910318651611,
0.5027315091097999,
0.7218048703284364,
0.89482670010109]
Exercice 1 : votre propre magique commande#
Je voulais vous demander comme exercice d’écrire une commande magique
qui envoie un
mail. On
pourrait imaginer une commande qui récupère les messages facebook.
Finalement, ce sera une commande magique %plot
qui dessine le graphe
de vos rêves. Vous pourrez perfectionner votre commande magique en
lisant cette page Registering
callbacks.
Remarque : Si vous décidez d’automatiser l’envoi des mails, prenez garde de ne pas écrire votre mot de passe dans le code de votre programme surtout si son code est disponible sur GitHub. Il est préférable de le demander à chaque fois ou de le stocker de façon cryptée :