web-dev-qa-db-fra.com

Masquer tous les avertissements dans ipython

J'ai besoin de produire un screencast d'une session ipython et, pour éviter toute confusion, je souhaite désactiver tous les avertissements émis par warnings.warn appels provenant de différents packages. Existe-t-il un moyen de configurer le fichier ipythonrc pour désactiver automatiquement tous ces avertissements?

239
astrofrog

J'ai finalement compris. Endroit:

import warnings
warnings.filterwarnings('ignore')

à l'intérieur de ~/.ipython/profile_default/startup/disable-warnings.py. Je laisse cette question et la réponse pour le compte rendu au cas où quelqu'un d'autre rencontrerait le même problème.

Il est souvent utile de voir un avertissement une fois. Cela peut être défini par:

warnings.filterwarnings(action='once')
543
astrofrog

Je cache les avertissements dans les cases roses en exécutant le code suivant dans une cellule:

from IPython.display import HTML
HTML('''<script>
code_show_err=false; 
function code_toggle_err() {
 if (code_show_err){
 $('div.output_stderr').hide();
 } else {
 $('div.output_stderr').show();
 }
 code_show_err = !code_show_err
} 
$( document ).ready(code_toggle_err);
</script>
To toggle on/off output_stderr, click <a href="javascript:code_toggle_err()">here</a>.''')
52
matthiash

Pour jupyter lab, cela devrait fonctionner (@Alasja)

from IPython.display import HTML
HTML('''<script>
var code_show_err = false; 
var code_toggle_err = function() {
 var stderrNodes = document.querySelectorAll('[data-mime-type="application/vnd.jupyter.stderr"]')
 var stderr = Array.from(stderrNodes)
 if (code_show_err){
     stderr.forEach(ele => ele.style.display = 'block');
 } else {
     stderr.forEach(ele => ele.style.display = 'none');
 }
 code_show_err = !code_show_err
} 
document.addEventListener('DOMContentLoaded', code_toggle_err);
</script>
To toggle on/off output_stderr, click <a onclick="javascript:code_toggle_err()">here</a>.''')
1
ottowg