Show More
@@ -21,7 +21,7 b' Authors:' | |||
|
21 | 21 | # Main functions |
|
22 | 22 | #----------------------------------------------------------------------------- |
|
23 | 23 | |
|
24 | def display(obj, include=None, exclude=None): | |
|
24 | def display(*objs, **kwargs): | |
|
25 | 25 | """Display a Python object in all frontends. |
|
26 | 26 | |
|
27 | 27 | By default all representations will be computed and sent to the frontends. |
@@ -29,8 +29,8 b' def display(obj, include=None, exclude=None):' | |||
|
29 | 29 | |
|
30 | 30 | Parameters |
|
31 | 31 | ---------- |
|
32 | obj : object | |
|
33 | The Python object to display. | |
|
32 | objs : tuple of objects | |
|
33 | The Python objects to display. | |
|
34 | 34 | include : list or tuple, optional |
|
35 | 35 | A list of format type strings (MIME types) to include in the |
|
36 | 36 | format data dict. If this is set *only* the format types included |
@@ -40,79 +40,83 b' def display(obj, include=None, exclude=None):' | |||
|
40 | 40 | data dict. If this is set all format types will be computed, |
|
41 | 41 | except for those included in this argument. |
|
42 | 42 | """ |
|
43 | include = kwargs.get('include') | |
|
44 | exclude = kwargs.get('exclude') | |
|
45 | ||
|
43 | 46 | from IPython.core.interactiveshell import InteractiveShell |
|
44 | 47 | inst = InteractiveShell.instance() |
|
45 | 48 | format = inst.display_formatter.format |
|
46 | 49 | publish = inst.display_pub.publish |
|
47 | 50 | |
|
51 | for obj in objs: | |
|
48 | 52 | format_dict = format(obj, include=include, exclude=exclude) |
|
49 | 53 | publish('IPython.core.display.display', format_dict) |
|
50 | 54 | |
|
51 | 55 | |
|
52 | def display_pretty(obj): | |
|
56 | def display_pretty(*objs): | |
|
53 | 57 | """Display the pretty (default) representation of an object. |
|
54 | 58 | |
|
55 | 59 | Parameters |
|
56 | 60 | ---------- |
|
57 | obj : object | |
|
58 | The Python object to display. | |
|
61 | objs : tuple of objects | |
|
62 | The Python objects to display. | |
|
59 | 63 | """ |
|
60 | display(obj, include=['text/plain']) | |
|
64 | display(*objs, include=['text/plain']) | |
|
61 | 65 | |
|
62 | 66 | |
|
63 | def display_html(obj): | |
|
67 | def display_html(*objs): | |
|
64 | 68 | """Display the HTML representation of an object. |
|
65 | 69 | |
|
66 | 70 | Parameters |
|
67 | 71 | ---------- |
|
68 | obj : object | |
|
69 | The Python object to display. | |
|
72 | objs : tuple of objects | |
|
73 | The Python objects to display. | |
|
70 | 74 | """ |
|
71 | display(obj, include=['text/plain','text/html']) | |
|
75 | display(*objs, include=['text/plain','text/html']) | |
|
72 | 76 | |
|
73 | 77 | |
|
74 | def display_svg(obj): | |
|
78 | def display_svg(*objs): | |
|
75 | 79 | """Display the SVG representation of an object. |
|
76 | 80 | |
|
77 | 81 | Parameters |
|
78 | 82 | ---------- |
|
79 | obj : object | |
|
80 | The Python object to display. | |
|
83 | objs : tuple of objects | |
|
84 | The Python objects to display. | |
|
81 | 85 | """ |
|
82 | display(obj, include=['text/plain','image/svg+xml']) | |
|
86 | display(*objs, include=['text/plain','image/svg+xml']) | |
|
83 | 87 | |
|
84 | 88 | |
|
85 | def display_png(obj): | |
|
89 | def display_png(*objs): | |
|
86 | 90 | """Display the PNG representation of an object. |
|
87 | 91 | |
|
88 | 92 | Parameters |
|
89 | 93 | ---------- |
|
90 | obj : object | |
|
91 | The Python object to display. | |
|
94 | objs : tuple of objects | |
|
95 | The Python objects to display. | |
|
92 | 96 | """ |
|
93 | display(obj, include=['text/plain','image/png']) | |
|
97 | display(*objs, include=['text/plain','image/png']) | |
|
94 | 98 | |
|
95 | 99 | |
|
96 | def display_latex(obj): | |
|
100 | def display_latex(*objs): | |
|
97 | 101 | """Display the LaTeX representation of an object. |
|
98 | 102 | |
|
99 | 103 | Parameters |
|
100 | 104 | ---------- |
|
101 | obj : object | |
|
102 | The Python object to display. | |
|
105 | objs : tuple of objects | |
|
106 | The Python objects to display. | |
|
103 | 107 | """ |
|
104 | display(obj, include=['text/plain','text/latex']) | |
|
108 | display(*objs, include=['text/plain','text/latex']) | |
|
105 | 109 | |
|
106 | 110 | |
|
107 | def display_json(obj): | |
|
111 | def display_json(*objs): | |
|
108 | 112 | """Display the JSON representation of an object. |
|
109 | 113 | |
|
110 | 114 | Parameters |
|
111 | 115 | ---------- |
|
112 | obj : object | |
|
113 | The Python object to display. | |
|
116 | objs : tuple of objects | |
|
117 | The Python objects to display. | |
|
114 | 118 | """ |
|
115 | display(obj, include=['text/plain','application/json']) | |
|
119 | display(*objs, include=['text/plain','application/json']) | |
|
116 | 120 | |
|
117 | 121 | |
|
118 | 122 |
@@ -212,8 +212,7 b' class DisplayHook(Configurable):' | |||
|
212 | 212 | all return values of this should always include the "text/plain" |
|
213 | 213 | MIME type representation of the object. |
|
214 | 214 | """ |
|
215 |
|
|
|
216 | return format_dict | |
|
215 | return self.shell.display_formatter.format(result) | |
|
217 | 216 | |
|
218 | 217 | def write_format_data(self, format_dict): |
|
219 | 218 | """Write the format data dict to the frontend. |
@@ -179,10 +179,11 b' class BaseFormatter(Configurable):' | |||
|
179 | 179 | to find print method: :attr:`singleton_printers`, :attr:`type_printers` |
|
180 | 180 | and :attr:`deferred_printers`. |
|
181 | 181 | |
|
182 |
Users should use these dictionarie to register functions that will be |
|
|
183 |
to compute the format data for their objects (if those objects don't |
|
|
184 |
the special print methods). The easiest way of using these |
|
|
185 |
is through the :meth:`for_type` and :meth:`for_type_by_name` |
|
|
182 | Users should use these dictionaries to register functions that will be | |
|
183 | used to compute the format data for their objects (if those objects don't | |
|
184 | have the special print methods). The easiest way of using these | |
|
185 | dictionaries is through the :meth:`for_type` and :meth:`for_type_by_name` | |
|
186 | methods. | |
|
186 | 187 | |
|
187 | 188 | If no function/callable is found to compute the format data, ``None`` is |
|
188 | 189 | returned and this format type is not used. |
@@ -243,7 +244,7 b' class BaseFormatter(Configurable):' | |||
|
243 | 244 | def for_type(self, typ, func): |
|
244 | 245 | """Add a format function for a given type. |
|
245 | 246 | |
|
246 |
Parameter |
|
|
247 | Parameters | |
|
247 | 248 | ----------- |
|
248 | 249 | typ : class |
|
249 | 250 | The class of the object that will be formatted using `func`. |
@@ -441,6 +441,31 b' We have provided as magics ``%less`` to page files (aliased to ``%more``),' | |||
|
441 | 441 | most common commands you'd want to call in your subshell and that would cause |
|
442 | 442 | problems if invoked via ``!cmd``, but you need to be aware of this limitation. |
|
443 | 443 | |
|
444 | Display | |
|
445 | ======= | |
|
446 | ||
|
447 | The IPython console can now display objects in a variety of formats, including | |
|
448 | HTML, PNG and SVG. This is accomplished using the display functions in | |
|
449 | ``IPython.core.display``:: | |
|
450 | ||
|
451 | In [4]: from IPython.core.display import display, display_html | |
|
452 | ||
|
453 | In [5]: from IPython.core.display import display_png, display_svg | |
|
454 | ||
|
455 | Python objects can simply be passed to these functions and the appropriate | |
|
456 | representations will be displayed in the console as long as the objects know | |
|
457 | how to compute those representations. The easiest way of teaching objects how | |
|
458 | to format themselves in various representations is to define special methods | |
|
459 | such as: ``__html``, ``__svg__`` and ``__png__``. IPython's display formatters | |
|
460 | can also be given custom formatter functions for various types:: | |
|
461 | ||
|
462 | In [6]: ip = get_ipython() | |
|
463 | ||
|
464 | In [7]: html_formatter = ip.display_formatter.formatters['text/html'] | |
|
465 | ||
|
466 | In [8]: html_formatter.for_type(Foo, foo_to_html) | |
|
467 | ||
|
468 | For further details, see ``IPython.core.formatters``. | |
|
444 | 469 | |
|
445 | 470 | Inline matplotlib graphics |
|
446 | 471 | ========================== |
@@ -448,10 +473,14 b' Inline matplotlib graphics' | |||
|
448 | 473 | The IPython console is capable of displaying matplotlib figures inline, in SVG |
|
449 | 474 | format. If started with the ``--pylab inline`` flag, then all figures are |
|
450 | 475 | rendered inline automatically. If started with ``--pylab`` or ``--pylab <your |
|
451 |
backend>``, then a GUI backend will be used, but |
|
|
452 | added to the global and ``plt`` namespaces. You can paste any figure that is | |
|
453 | currently open in a window with this function; type ``pastefig?`` for | |
|
454 | additional details.""" | |
|
476 | backend>``, then a GUI backend will be used, but IPython's ``display()`` and | |
|
477 | ``getfigs()`` functions can be used to view plots inline:: | |
|
478 | ||
|
479 | In [9]: display(*getfigs()) # display all figures inline | |
|
480 | ||
|
481 | In[10]: display(*getfigs(1,2)) # display figures 1 and 2 inline | |
|
482 | """ | |
|
483 | ||
|
455 | 484 | |
|
456 | 485 | quick_guide = """\ |
|
457 | 486 | ? -> Introduction and overview of IPython's features. |
@@ -36,6 +36,33 b" backends = {'tk': 'TkAgg'," | |||
|
36 | 36 | # Matplotlib utilities |
|
37 | 37 | #----------------------------------------------------------------------------- |
|
38 | 38 | |
|
39 | ||
|
40 | def getfigs(*fig_nums): | |
|
41 | """Get a list of matplotlib figures by figure numbers. | |
|
42 | ||
|
43 | If no arguments are given, all available figures are returned. If the | |
|
44 | argument list contains references to invalid figures, a warning is printed | |
|
45 | but the function continues pasting further figures. | |
|
46 | ||
|
47 | Parameters | |
|
48 | ---------- | |
|
49 | figs : tuple | |
|
50 | A tuple of ints giving the figure numbers of the figures to return. | |
|
51 | """ | |
|
52 | from matplotlib._pylab_helpers import Gcf | |
|
53 | if not fig_nums: | |
|
54 | fig_managers = Gcf.get_all_fig_managers() | |
|
55 | return [fm.canvas.figure for fm in fig_managers] | |
|
56 | else: | |
|
57 | figs = [] | |
|
58 | for num in fig_nums: | |
|
59 | f = Gcf.figs.get(num) | |
|
60 | if f is None: | |
|
61 | print('Warning: figure %s not available.' % num) | |
|
62 | figs.append(f.canvas.figure) | |
|
63 | return figs | |
|
64 | ||
|
65 | ||
|
39 | 66 | def figsize(sizex, sizey): |
|
40 | 67 | """Set the default figure size to be [sizex, sizey]. |
|
41 | 68 | |
@@ -209,6 +236,8 b' def import_pylab(user_ns, backend, import_all=True, shell=None):' | |||
|
209 | 236 | shell.user_ns_hidden['display'] = display |
|
210 | 237 | user_ns['display_svg'] = display_svg |
|
211 | 238 | shell.user_ns_hidden['display_svg'] = display_svg |
|
239 | user_ns['getfigs'] = getfigs | |
|
240 | shell.user_ns_hidden['getfigs'] = getfigs | |
|
212 | 241 | |
|
213 | 242 | if import_all: |
|
214 | 243 | s = ("from matplotlib.pylab import *\n" |
General Comments 0
You need to be logged in to leave comments.
Login now