Ipython: est-il possible de désactiver le téléavertisseur, ou de dire à des magies spécifiques de ne pas utiliser le téléavertisseur ?

Créé le 22 mars 2014  ·  3Commentaires  ·  Source: ipython/ipython

Bonjour,
Je ne sais pas si vous traitez les questions d'assistance via le suivi des problèmes ou ailleurs, mais si ailleurs et que vous pouvez m'y indiquer, je serai heureux de republier.

J'essaie d'imprimer la sortie de %psource à la suite de la cellule, plutôt que de la faire passer par le pager dans le bloc-notes HTML. J'ai parcouru la documentation, fait quelques recherches sur Google et parcouru le suivi des problèmes (le problème le plus lié que j'ai trouvé est le #1947) et le code source, mais j'ai du mal à comprendre comment faire cela. Est-il possible? Sinon, je pense que ce serait une fonctionnalité vraiment utile.

Mon cas d'utilisation spécifique est que je rassemble du matériel pédagogique bioinformatique à l'aide du Notebook et que je souhaite afficher le code source de certaines fonctions clés en ligne, afin qu'ils s'affichent bien, par exemple via nbviewer, car les fonctionnalités du code source sont discutées dans le texte environnant.

Merci pour l'aide avec ça!
Grégoire

Commentaire le plus utile

C'est un peu plus complexe de nos jours, puisque page() est appelé avec un dict de documents de type mime. Voici ce qui a désactivé le pager pour mon installation IPython 5.1.0 :

En ~/.ipython/profile_default/startup/no-pager.py :

from __future__ import print_function

def page_printer(data, start=0, screen_lines=0, pager_cmd=None):
    if isinstance(data, dict):
        data = data['text/plain']
    print(data)

import IPython.core.page
IPython.core.page.page = page_printer

Tous les 3 commentaires

Oui, vous pouvez simplement remplacer l'appel du pager par print : http://nbviewer.ipython.org/gist/minrk/7715212

Fonctionne parfaitement, merci !

C'est un peu plus complexe de nos jours, puisque page() est appelé avec un dict de documents de type mime. Voici ce qui a désactivé le pager pour mon installation IPython 5.1.0 :

En ~/.ipython/profile_default/startup/no-pager.py :

from __future__ import print_function

def page_printer(data, start=0, screen_lines=0, pager_cmd=None):
    if isinstance(data, dict):
        data = data['text/plain']
    print(data)

import IPython.core.page
IPython.core.page.page = page_printer
Cette page vous a été utile?
0 / 5 - 0 notes