Ocultar todas las advertencias en IPython
Necesito producir un screencast de una sesión de IPython y, para evitar confundir a los espectadores, quiero desactivar todas las advertencias emitidas por warnings.warn
llamadas de diferentes paquetes. ¿Hay alguna manera de configurar el archivo ipythonrc para deshabilitar automáticamente todas esas advertencias?
Lugar:
import warnings
warnings.filterwarnings('ignore')
adentro ~/.ipython/profile_default/startup/disable-warnings.py
.
Muy a menudo resulta útil ver una advertencia una vez. Esto se puede configurar mediante:
warnings.filterwarnings(action='once')
La respuesta aceptada no funciona en Jupyter (al menos cuando se usan algunas bibliotecas).
Las soluciones de JavaScript aquí solo ocultan las advertencias que ya se muestran, pero no las que se mostrarán en el futuro.
Para ocultar/mostrar advertencias en Jupyter y JupyterLab , escribí el siguiente script que esencialmente alterna CSS para ocultar/mostrar advertencias.
%%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);
Para JupyterLab , esto debería funcionar (@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>.''')