Verberg alle waarschuwingen in ipython

Ik moet een screencast van een ipython-sessie maken en om verwarring bij de kijkers te voorkomen, wil ik alle waarschuwingen uitschakelen die worden uitgezonden door warnings.warn-aanroepen van verschillende pakketten. Is er een manier om het ipythonrc-bestand te configureren om al dergelijke waarschuwingen automatisch uit te schakelen?


Antwoord 1, autoriteit 100%

Ik kwam er uiteindelijk achter. Plaats:

import warnings
warnings.filterwarnings('ignore')

in ~/.ipython/profile_default/startup/disable-warnings.py. Ik laat deze vraag en antwoord voor de goede orde voor het geval iemand anders hetzelfde probleem tegenkomt.

Vaak is het handig om een waarschuwing een keer te zien. Dit kan worden ingesteld door:

warnings.filterwarnings(action='once')

Antwoord 2, autoriteit 7%

Ik verberg de waarschuwingen in de roze vakken door de volgende code in een cel uit te voeren:

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>.''')

Antwoord 3

Het geaccepteerde antwoord werkt niet in Jupyter (tenminste bij gebruik van sommige bibliotheken).

De Javascript-oplossingen hier verbergen alleen waarschuwingen die al worden weergegeven, maar geen waarschuwingen die in de toekomst worden weergegeven.

WAARSCHUWINGEN IN JUPYTER EN JUPYTERLAB HIFT OF JUPYTER EN JUPYTERLAB SHREEK HET VOLGENDE SCRIPT DIE CSS in essentie schakelt om waarschuwingen te verbergen / de waarschuwingen aan te gaan.

%%javascript
(function(on) {
const e=$( "<a>Setup failed</a>" );
const ns="js_jupyter_suppress_warnings";
var cssrules=$("#"+ns);
if(!cssrules.length) cssrules = $("<style id='"+ns+"' type='text/css'>div.output_stderr { } </style>").appendTo("head");
e.click(function() {
    var s='Showing';  
    cssrules.empty()
    if(on) {
        s='Hiding';
        cssrules.append("div.output_stderr, div[data-mime-type*='.stderr'] { display:none; }");
    }
    e.text(s+' warnings (click to toggle)');
    on=!on;
}).click();
$(element).append(e);
})(true);

Antwoord 4

Voor JUPYTER LAB zou dit moeten werken (@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>.''')

Other episodes