Show More
@@ -1155,7 +1155,12 b' class Video(DisplayObject):' | |||
|
1155 | 1155 | |
|
1156 | 1156 | @skip_doctest |
|
1157 | 1157 | def set_matplotlib_formats(*formats, **kwargs): |
|
1158 | """Select figure formats for the inline backend. Optionally pass quality for JPEG. | |
|
1158 | """ | |
|
1159 | .. deprecated:: 7.23 | |
|
1160 | ||
|
1161 | use `matplotlib_inline.backend_inline.set_matplotlib_formats()` | |
|
1162 | ||
|
1163 | Select figure formats for the inline backend. Optionally pass quality for JPEG. | |
|
1159 | 1164 | |
|
1160 | 1165 | For example, this enables PNG and JPEG output with a JPEG quality of 90%:: |
|
1161 | 1166 | |
@@ -1173,20 +1178,28 b' def set_matplotlib_formats(*formats, **kwargs):' | |||
|
1173 | 1178 | **kwargs |
|
1174 | 1179 | Keyword args will be relayed to ``figure.canvas.print_figure``. |
|
1175 | 1180 | """ |
|
1176 | from IPython.core.interactiveshell import InteractiveShell | |
|
1177 | from IPython.core.pylabtools import select_figure_formats | |
|
1178 | # build kwargs, starting with InlineBackend config | |
|
1179 | kw = {} | |
|
1180 | from ipykernel.pylab.config import InlineBackend | |
|
1181 | cfg = InlineBackend.instance() | |
|
1182 | kw.update(cfg.print_figure_kwargs) | |
|
1183 | kw.update(**kwargs) | |
|
1184 | shell = InteractiveShell.instance() | |
|
1185 | select_figure_formats(shell, formats, **kw) | |
|
1181 | warnings.warn( | |
|
1182 | "`set_matplotlib_formats` is deprecated since IPython 7.23, directly " | |
|
1183 | "use `matplotlib_inline.backend_inline.set_matplotlib_formats()`", | |
|
1184 | DeprecationWarning, | |
|
1185 | stacklevel=2, | |
|
1186 | ) | |
|
1187 | ||
|
1188 | from matplotlib_inline.backend_inline import ( | |
|
1189 | set_matplotlib_formats as set_matplotlib_formats_orig, | |
|
1190 | ) | |
|
1191 | ||
|
1192 | set_matplotlib_formats_orig(*formats, **kwargs) | |
|
1186 | 1193 | |
|
1187 | 1194 | @skip_doctest |
|
1188 | 1195 | def set_matplotlib_close(close=True): |
|
1189 | """Set whether the inline backend closes all figures automatically or not. | |
|
1196 | """ | |
|
1197 | .. deprecated:: 7.23 | |
|
1198 | ||
|
1199 | use `matplotlib_inline.backend_inline.set_matplotlib_close()` | |
|
1200 | ||
|
1201 | ||
|
1202 | Set whether the inline backend closes all figures automatically or not. | |
|
1190 | 1203 | |
|
1191 | 1204 | By default, the inline backend used in the IPython Notebook will close all |
|
1192 | 1205 | matplotlib figures automatically after each cell is run. This means that |
@@ -1206,6 +1219,15 b' def set_matplotlib_close(close=True):' | |||
|
1206 | 1219 | Should all matplotlib figures be automatically closed after each cell is |
|
1207 | 1220 | run? |
|
1208 | 1221 | """ |
|
1209 | from ipykernel.pylab.config import InlineBackend | |
|
1210 | cfg = InlineBackend.instance() | |
|
1211 | cfg.close_figures = close | |
|
1222 | warnings.warn( | |
|
1223 | "`set_matplotlib_close` is deprecated since IPython 7.23, directly " | |
|
1224 | "use `matplotlib_inline.backend_inline.set_matplotlib_close()`", | |
|
1225 | DeprecationWarning, | |
|
1226 | stacklevel=2, | |
|
1227 | ) | |
|
1228 | ||
|
1229 | from matplotlib_inline.backend_inline import ( | |
|
1230 | set_matplotlib_close as set_matplotlib_close_orig, | |
|
1231 | ) | |
|
1232 | ||
|
1233 | set_matplotlib_close_orig(close) |
@@ -3527,6 +3527,7 b' class InteractiveShell(SingletonConfigurable):' | |||
|
3527 | 3527 | display figures inline. |
|
3528 | 3528 | """ |
|
3529 | 3529 | from IPython.core import pylabtools as pt |
|
3530 | from matplotlib_inline.backend_inline import configure_inline_support | |
|
3530 | 3531 | gui, backend = pt.find_gui_and_backend(gui, self.pylab_gui_select) |
|
3531 | 3532 | |
|
3532 | 3533 | if gui != 'inline': |
@@ -3540,7 +3541,7 b' class InteractiveShell(SingletonConfigurable):' | |||
|
3540 | 3541 | gui, backend = pt.find_gui_and_backend(self.pylab_gui_select) |
|
3541 | 3542 | |
|
3542 | 3543 | pt.activate_matplotlib(backend) |
|
3543 |
|
|
|
3544 | configure_inline_support(self, backend) | |
|
3544 | 3545 | |
|
3545 | 3546 | # Now we must activate the gui pylab wants to use, and fix %run to take |
|
3546 | 3547 | # plot updates into account |
@@ -5,29 +5,31 b'' | |||
|
5 | 5 | # Distributed under the terms of the Modified BSD License. |
|
6 | 6 | |
|
7 | 7 | from io import BytesIO |
|
8 | import warnings | |
|
8 | 9 | |
|
9 | 10 | from IPython.core.display import _pngxy |
|
10 | 11 | from IPython.utils.decorators import flag_calls |
|
11 | 12 | |
|
12 | 13 | # If user specifies a GUI, that dictates the backend, otherwise we read the |
|
13 | 14 | # user's mpl default from the mpl rc structure |
|
14 |
backends = { |
|
|
15 | 'gtk': 'GTKAgg', | |
|
16 |
|
|
|
17 | 'wx': 'WXAgg', | |
|
18 | 'qt4': 'Qt4Agg', | |
|
19 | 'qt5': 'Qt5Agg', | |
|
20 |
|
|
|
21 | 'osx': 'MacOSX', | |
|
22 | 'nbagg': 'nbAgg', | |
|
23 | 'notebook': 'nbAgg', | |
|
24 | 'agg': 'agg', | |
|
25 | 'svg': 'svg', | |
|
26 | 'pdf': 'pdf', | |
|
27 | 'ps': 'ps', | |
|
28 | 'inline': 'module://ipykernel.pylab.backend_inline', | |
|
29 | 'ipympl': 'module://ipympl.backend_nbagg', | |
|
30 |
|
|
|
15 | backends = { | |
|
16 | "tk": "TkAgg", | |
|
17 | "gtk": "GTKAgg", | |
|
18 | "gtk3": "GTK3Agg", | |
|
19 | "wx": "WXAgg", | |
|
20 | "qt4": "Qt4Agg", | |
|
21 | "qt5": "Qt5Agg", | |
|
22 | "qt": "Qt5Agg", | |
|
23 | "osx": "MacOSX", | |
|
24 | "nbagg": "nbAgg", | |
|
25 | "notebook": "nbAgg", | |
|
26 | "agg": "agg", | |
|
27 | "svg": "svg", | |
|
28 | "pdf": "pdf", | |
|
29 | "ps": "ps", | |
|
30 | "inline": "module://matplotlib_inline.backend_inline", | |
|
31 | "ipympl": "module://ipympl.backend_nbagg", | |
|
32 | "widget": "module://ipympl.backend_nbagg", | |
|
31 | 33 | } |
|
32 | 34 | |
|
33 | 35 | # We also need a reverse backends2guis mapping that will properly choose which |
@@ -44,12 +46,12 b" backend2gui['GTK3Cairo'] = 'gtk3'" | |||
|
44 | 46 | backend2gui['WX'] = 'wx' |
|
45 | 47 | backend2gui['CocoaAgg'] = 'osx' |
|
46 | 48 | # And some backends that don't need GUI integration |
|
47 |
del backend2gui[ |
|
|
48 |
del backend2gui[ |
|
|
49 |
del backend2gui[ |
|
|
50 |
del backend2gui[ |
|
|
51 |
del backend2gui[ |
|
|
52 |
del backend2gui[ |
|
|
49 | del backend2gui["nbAgg"] | |
|
50 | del backend2gui["agg"] | |
|
51 | del backend2gui["svg"] | |
|
52 | del backend2gui["pdf"] | |
|
53 | del backend2gui["ps"] | |
|
54 | del backend2gui["module://matplotlib_inline.backend_inline"] | |
|
53 | 55 | |
|
54 | 56 | #----------------------------------------------------------------------------- |
|
55 | 57 | # Matplotlib utilities |
@@ -274,7 +276,7 b' def find_gui_and_backend(gui=None, gui_select=None):' | |||
|
274 | 276 | Returns |
|
275 | 277 | ------- |
|
276 | 278 | A tuple of (gui, backend) where backend is one of ('TkAgg','GTKAgg', |
|
277 |
'WXAgg','Qt4Agg','module:// |
|
|
279 | 'WXAgg','Qt4Agg','module://matplotlib_inline.backend_inline','agg'). | |
|
278 | 280 | """ |
|
279 | 281 | |
|
280 | 282 | import matplotlib |
@@ -361,7 +363,12 b' def import_pylab(user_ns, import_all=True):' | |||
|
361 | 363 | |
|
362 | 364 | |
|
363 | 365 | def configure_inline_support(shell, backend): |
|
364 | """Configure an IPython shell object for matplotlib use. | |
|
366 | """ | |
|
367 | .. deprecated: 7.23 | |
|
368 | ||
|
369 | use `matplotlib_inline.backend_inline.configure_inline_support()` | |
|
370 | ||
|
371 | Configure an IPython shell object for matplotlib use. | |
|
365 | 372 | |
|
366 | 373 | Parameters |
|
367 | 374 | ---------- |
@@ -369,51 +376,13 b' def configure_inline_support(shell, backend):' | |||
|
369 | 376 | |
|
370 | 377 | backend : matplotlib backend |
|
371 | 378 | """ |
|
372 | # If using our svg payload backend, register the post-execution | |
|
373 | # function that will pick up the results for display. This can only be | |
|
374 | # done with access to the real shell object. | |
|
379 | warnings.warn( | |
|
380 | "`configure_inline_support` is deprecated since IPython 7.23, directly " | |
|
381 | "use `matplotlib_inline.backend_inline.configure_inline_support()`", | |
|
382 | DeprecationWarning, | |
|
383 | stacklevel=2, | |
|
384 | ) | |
|
375 | 385 | |
|
376 | # Note: if we can't load the inline backend, then there's no point | |
|
377 | # continuing (such as in terminal-only shells in environments without | |
|
378 | # zeromq available). | |
|
379 | try: | |
|
380 | from ipykernel.pylab.backend_inline import InlineBackend | |
|
381 | except ImportError: | |
|
382 | return | |
|
383 | import matplotlib | |
|
386 | from matplotlib_inline.backend_inline import configure_inline_support_orig | |
|
384 | 387 | |
|
385 | cfg = InlineBackend.instance(parent=shell) | |
|
386 | cfg.shell = shell | |
|
387 | if cfg not in shell.configurables: | |
|
388 | shell.configurables.append(cfg) | |
|
389 | ||
|
390 | if backend == backends['inline']: | |
|
391 | from ipykernel.pylab.backend_inline import flush_figures | |
|
392 | shell.events.register('post_execute', flush_figures) | |
|
393 | ||
|
394 | # Save rcParams that will be overwrittern | |
|
395 | shell._saved_rcParams = {} | |
|
396 | for k in cfg.rc: | |
|
397 | shell._saved_rcParams[k] = matplotlib.rcParams[k] | |
|
398 | # load inline_rc | |
|
399 | matplotlib.rcParams.update(cfg.rc) | |
|
400 | new_backend_name = "inline" | |
|
401 | else: | |
|
402 | from ipykernel.pylab.backend_inline import flush_figures | |
|
403 | try: | |
|
404 | shell.events.unregister('post_execute', flush_figures) | |
|
405 | except ValueError: | |
|
406 | pass | |
|
407 | if hasattr(shell, '_saved_rcParams'): | |
|
408 | matplotlib.rcParams.update(shell._saved_rcParams) | |
|
409 | del shell._saved_rcParams | |
|
410 | new_backend_name = "other" | |
|
411 | ||
|
412 | # only enable the formats once -> don't change the enabled formats (which the user may | |
|
413 | # has changed) when getting another "%matplotlib inline" call. | |
|
414 | # See https://github.com/ipython/ipykernel/issues/29 | |
|
415 | cur_backend = getattr(configure_inline_support, "current_backend", "unset") | |
|
416 | if new_backend_name != cur_backend: | |
|
417 | # Setup the default figure format | |
|
418 | select_figure_formats(shell, cfg.figure_formats, **cfg.print_figure_kwargs) | |
|
419 | configure_inline_support.current_backend = new_backend_name | |
|
388 | configure_inline_support_orig(shell, backend) |
@@ -135,7 +135,7 b' def test_image_filename_defaults():' | |||
|
135 | 135 | nt.assert_is_none(img._repr_jpeg_()) |
|
136 | 136 | |
|
137 | 137 | def _get_inline_config(): |
|
138 |
from |
|
|
138 | from matplotlib_inline.config import InlineBackend | |
|
139 | 139 | return InlineBackend.instance() |
|
140 | 140 | |
|
141 | 141 |
@@ -15,6 +15,7 b' from nose import SkipTest' | |||
|
15 | 15 | import nose.tools as nt |
|
16 | 16 | |
|
17 | 17 | from matplotlib import pyplot as plt |
|
18 | import matplotlib_inline | |
|
18 | 19 | import numpy as np |
|
19 | 20 | |
|
20 | 21 | from IPython.core.getipython import get_ipython |
@@ -175,13 +176,15 b' class TestPylabSwitch(object):' | |||
|
175 | 176 | pt.activate_matplotlib = act_mpl |
|
176 | 177 | self._save_ip = pt.import_pylab |
|
177 | 178 | pt.import_pylab = lambda *a,**kw:None |
|
178 | self._save_cis = pt.configure_inline_support | |
|
179 |
pt.configure_inline_support = |
|
|
179 | self._save_cis = matplotlib_inline.backend_inline.configure_inline_support | |
|
180 | matplotlib_inline.backend_inline.configure_inline_support = ( | |
|
181 | lambda *a, **kw: None | |
|
182 | ) | |
|
180 | 183 | |
|
181 | 184 | def teardown(self): |
|
182 | 185 | pt.activate_matplotlib = self._save_am |
|
183 | 186 | pt.import_pylab = self._save_ip |
|
184 | pt.configure_inline_support = self._save_cis | |
|
187 | matplotlib_inline.backend_inline.configure_inline_support = self._save_cis | |
|
185 | 188 | import matplotlib |
|
186 | 189 | matplotlib.rcParams = self._saved_rcParams |
|
187 | 190 | matplotlib.rcParamsOrig = self._saved_rcParamsOrig |
@@ -191,15 +191,16 b' extras_require = dict(' | |||
|
191 | 191 | ) |
|
192 | 192 | |
|
193 | 193 | install_requires = [ |
|
194 |
|
|
|
195 |
|
|
|
196 |
|
|
|
197 |
|
|
|
198 |
|
|
|
199 |
|
|
|
200 |
|
|
|
201 |
|
|
|
202 |
|
|
|
194 | "setuptools>=18.5", | |
|
195 | "jedi>=0.16", | |
|
196 | "decorator", | |
|
197 | "pickleshare", | |
|
198 | "traitlets>=4.2", | |
|
199 | "prompt_toolkit>=2.0.0,<3.1.0,!=3.0.0,!=3.0.1", | |
|
200 | "pygments", | |
|
201 | "backcall", | |
|
202 | "stack_data", | |
|
203 | "matplotlib-inline", | |
|
203 | 204 | ] |
|
204 | 205 | |
|
205 | 206 | # Platform-specific dependencies: |
General Comments 0
You need to be logged in to leave comments.
Login now