from jyquickhelper import add_notebook_menu
add_notebook_menu()

"""
Explanation: 2A.soft - Jupyter et commandes magiques
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.
End of explanation
"""


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

"""
Explanation: 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.
End of explanation
"""


