Je voudrais pouvoir signaler des avertissements et des erreurs lors de l'évaluation d'un bloc de code Python dans un fichier Org.
Lorsqu'un bloc de code contient des erreurs de syntaxe Python, Org les affiche utilement dans un tampon distinct appelé *Org-Babel Error Output*
. Ce serait bien de pouvoir envoyer mes propres avertissements là aussi, tout en conservant la possibilité de retourner un résultat de tableau en mode Org en tant que table utilisant :results value
.
Pour être clair, voici un exemple factice du genre de chose que je pensais pouvoir fonctionner:
#+BEGIN_SRC python
import sys
sys.stderr.write('Warning.\n')
sys.stderr.flush()
return [['Table', 'header'], ['table', 'data']]
#+END_SRC
#+RESULTS:
| Table | header |
| table | data |
Modifié pour ajouter: Cette discussion sur la liste en mode organisation suggère que la sortie d'erreur ne s'affiche que lorsque l'évaluation du bloc de code échoue. Il semble donc que cela soit possible, mais uniquement en abandonnant l'évaluation à l'aide de exit(1)
ou similaire.
Réponses:
Comme décrit par Eric Schulte sur la
org-mode
liste de diffusion (voir le lien dans la question) nous pouvons modifierorg-babel-eval
pour y parvenir:Maintenant, si
org-babel-eval-verbose
est défini surt
, la sortie imprimée sur stderr pendant l'évaluation d'un bloc de code source apparaît dans une fenêtre distincte comme si l'évaluation du code source avait échoué.la source