From 3f1fea0eb9a39dd8e43b1933d80c243ee69b81da Mon Sep 17 00:00:00 2001 From: Antonio Rojas Date: Wed, 5 Aug 2026 09:20:59 +0200 Subject: [PATCH 1/4] Import inline_plots on load So that inline plots can be configured without any further imports --- src/sage/repl/all.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/repl/all.py b/src/sage/repl/all.py index 809cea7d7e5..d64a1e5af4e 100644 --- a/src/sage/repl/all.py +++ b/src/sage/repl/all.py @@ -1,6 +1,7 @@ from sage.misc.lazy_import import lazy_import from sage.repl.preparse import preparse, implicit_multiplication +from sage.repl.interpreter import inline_plots lazy_import('sage.repl.interpreter', 'preparser') From ecc676b21c53363d3fe1bf9e679c913be1a1916f Mon Sep 17 00:00:00 2001 From: Antonio Rojas Date: Thu, 6 Aug 2026 23:13:46 +0200 Subject: [PATCH 2/4] Import lazily Co-authored-by: Lennard Hofmann --- src/sage/repl/all.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/sage/repl/all.py b/src/sage/repl/all.py index d64a1e5af4e..1a173a3e232 100644 --- a/src/sage/repl/all.py +++ b/src/sage/repl/all.py @@ -1,9 +1,7 @@ from sage.misc.lazy_import import lazy_import from sage.repl.preparse import preparse, implicit_multiplication -from sage.repl.interpreter import inline_plots - -lazy_import('sage.repl.interpreter', 'preparser') +lazy_import('sage.repl.interpreter', ['preparser', 'inline_plots']) lazy_import('sage.repl.attach', [ 'attach', 'detach', 'attached_files', 'load_attach_path', From fc5de7721e6fb77a37b4335eca528fddf8f251e7 Mon Sep 17 00:00:00 2001 From: Antonio Rojas Date: Thu, 6 Aug 2026 23:15:21 +0200 Subject: [PATCH 3/4] Drop no longer needed line --- src/sage/repl/interpreter.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py index 7530214ed99..cbdafaf4efe 100644 --- a/src/sage/repl/interpreter.py +++ b/src/sage/repl/interpreter.py @@ -202,7 +202,6 @@ def inline_plots(on=None): EXAMPLES:: - sage: from sage.repl.interpreter import inline_plots sage: type(inline_plots()) is bool True sage: inline_plots(False) # random From 121619e9a4b6a161e998d79ac79beac65c7d27e1 Mon Sep 17 00:00:00 2001 From: Antonio Rojas Date: Sun, 9 Aug 2026 10:35:35 +0200 Subject: [PATCH 4/4] inline_plots: do not throw an error on Jupyter inline_plots only makes sense inside the interactive shell, bail out if we are on Jupyter instead of throwing an error --- src/sage/repl/interpreter.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py index cbdafaf4efe..5c3643ff700 100644 --- a/src/sage/repl/interpreter.py +++ b/src/sage/repl/interpreter.py @@ -219,6 +219,9 @@ def inline_plots(on=None): if not supports_kitty_graphics: print('Inline plots are not supported for the current terminal and IPython version') return + if not hasattr(IP, 'mime_renderers'): + # exit if we are not using the interactive shell + return if on: IP.mime_renderers['image/png'] = kitty_png_render elif 'image/png' in IP.mime_renderers: