1{
2 "cells": [
3  {
4   "cell_type": "code",
5   "execution_count": 1,
6   "metadata": {},
7   "outputs": [
8    {
9     "data": {
10      "application/vnd.jupyter.widget-view+json": {
11       "model_id": "e152547dd69d46fcbcb602cf9f92e50b",
12       "version_major": 2,
13       "version_minor": 0
14      },
15      "text/plain": [
16       "Output()"
17      ]
18     },
19     "metadata": {},
20     "output_type": "display_data"
21    }
22   ],
23   "source": [
24    "import ipywidgets as widgets\n",
25    "from IPython.display import clear_output\n",
26    "output1 = widgets.Output()\n",
27    "output1"
28   ]
29  },
30  {
31   "cell_type": "code",
32   "execution_count": 2,
33   "metadata": {},
34   "outputs": [
35    {
36     "name": "stdout",
37     "output_type": "stream",
38     "text": [
39      "hi\n"
40     ]
41    }
42   ],
43   "source": [
44    "print(\"hi\")\n",
45    "with output1:\n",
46    "    print(\"in output\")"
47   ]
48  },
49  {
50   "cell_type": "code",
51   "execution_count": 3,
52   "metadata": {},
53   "outputs": [],
54   "source": [
55    "with output1:\n",
56    "    raise ValueError(\"trigger msg_type=error\")"
57   ]
58  },
59  {
60   "cell_type": "code",
61   "execution_count": 4,
62   "metadata": {},
63   "outputs": [
64    {
65     "data": {
66      "application/vnd.jupyter.widget-view+json": {
67       "model_id": "44dc393cd7c6461a8c4901f85becfc0e",
68       "version_major": 2,
69       "version_minor": 0
70      },
71      "text/plain": [
72       "Output()"
73      ]
74     },
75     "metadata": {},
76     "output_type": "display_data"
77    }
78   ],
79   "source": [
80    "import ipywidgets as widgets\n",
81    "output2 = widgets.Output()\n",
82    "output2"
83   ]
84  },
85  {
86   "cell_type": "code",
87   "execution_count": 5,
88   "metadata": {},
89   "outputs": [
90    {
91     "name": "stdout",
92     "output_type": "stream",
93     "text": [
94      "hi2\n"
95     ]
96    }
97   ],
98   "source": [
99    "print(\"hi2\")\n",
100    "with output2:\n",
101    "    print(\"in output2\")\n",
102    "    clear_output(wait=True)"
103   ]
104  },
105  {
106   "cell_type": "code",
107   "execution_count": 6,
108   "metadata": {},
109   "outputs": [
110    {
111     "data": {
112      "application/vnd.jupyter.widget-view+json": {
113       "model_id": "d6cd7a1de3494d2daff23c6d4ffe42ee",
114       "version_major": 2,
115       "version_minor": 0
116      },
117      "text/plain": [
118       "Output()"
119      ]
120     },
121     "metadata": {},
122     "output_type": "display_data"
123    }
124   ],
125   "source": [
126    "import ipywidgets as widgets\n",
127    "output3 = widgets.Output()\n",
128    "output3"
129   ]
130  },
131  {
132   "cell_type": "code",
133   "execution_count": 7,
134   "metadata": {},
135   "outputs": [
136    {
137     "name": "stdout",
138     "output_type": "stream",
139     "text": [
140      "hi3\n"
141     ]
142    }
143   ],
144   "source": [
145    "print(\"hi3\")\n",
146    "with output3:\n",
147    "    print(\"hello\")\n",
148    "    clear_output(wait=True)\n",
149    "    print(\"world\")"
150   ]
151  },
152  {
153   "cell_type": "code",
154   "execution_count": 8,
155   "metadata": {},
156   "outputs": [
157    {
158     "data": {
159      "application/vnd.jupyter.widget-view+json": {
160       "model_id": "10517a9d5b1d4ea386945642894dd898",
161       "version_major": 2,
162       "version_minor": 0
163      },
164      "text/plain": [
165       "Output()"
166      ]
167     },
168     "metadata": {},
169     "output_type": "display_data"
170    }
171   ],
172   "source": [
173    "import ipywidgets as widgets\n",
174    "output4 = widgets.Output()\n",
175    "output4"
176   ]
177  },
178  {
179   "cell_type": "code",
180   "execution_count": 9,
181   "metadata": {},
182   "outputs": [
183    {
184     "name": "stdout",
185     "output_type": "stream",
186     "text": [
187      "hi4\n"
188     ]
189    }
190   ],
191   "source": [
192    "print(\"hi4\")\n",
193    "with output4:\n",
194    "    print(\"hello world\")\n",
195    "    clear_output()"
196   ]
197  },
198  {
199   "cell_type": "code",
200   "execution_count": 10,
201   "metadata": {},
202   "outputs": [
203    {
204     "data": {
205      "application/vnd.jupyter.widget-view+json": {
206       "model_id": "37f7ba6a9ecc4c19b519e718cd12aafe",
207       "version_major": 2,
208       "version_minor": 0
209      },
210      "text/plain": [
211       "Output()"
212      ]
213     },
214     "metadata": {},
215     "output_type": "display_data"
216    }
217   ],
218   "source": [
219    "import ipywidgets as widgets\n",
220    "output5 = widgets.Output()\n",
221    "output5"
222   ]
223  },
224  {
225   "cell_type": "code",
226   "execution_count": 11,
227   "metadata": {},
228   "outputs": [],
229   "source": [
230    "print(\"hi5\")\n",
231    "with output5:\n",
232    "    display(\"hello world\") # this is not a stream but plain text\n",
233    "clear_output()"
234   ]
235  },
236  {
237   "cell_type": "code",
238   "execution_count": 12,
239   "metadata": {},
240   "outputs": [
241    {
242     "data": {
243      "application/vnd.jupyter.widget-view+json": {
244       "model_id": "4fb0ee7e557440109c08547514f03c7b",
245       "version_major": 2,
246       "version_minor": 0
247      },
248      "text/plain": [
249       "Output()"
250      ]
251     },
252     "metadata": {},
253     "output_type": "display_data"
254    }
255   ],
256   "source": [
257    "import ipywidgets as widgets\n",
258    "output_outer = widgets.Output()\n",
259    "output_inner = widgets.Output()\n",
260    "output_inner"
261   ]
262  },
263  {
264   "cell_type": "code",
265   "execution_count": 13,
266   "metadata": {},
267   "outputs": [
268    {
269     "data": {
270      "application/vnd.jupyter.widget-view+json": {
271       "model_id": "01ea355e26484c13b1caaaf6d29ac0f2",
272       "version_major": 2,
273       "version_minor": 0
274      },
275      "text/plain": [
276       "Output()"
277      ]
278     },
279     "metadata": {},
280     "output_type": "display_data"
281    }
282   ],
283   "source": [
284    "output_outer"
285   ]
286  },
287  {
288   "cell_type": "code",
289   "execution_count": 14,
290   "metadata": {},
291   "outputs": [],
292   "source": [
293    "with output_inner:\n",
294    "    print('in inner')\n",
295    "    with output_outer:\n",
296    "        print('in outer')\n",
297    "    print('also in inner')"
298   ]
299  }
300 ],
301 "metadata": {
302  "kernelspec": {
303   "language": "python"
304  },
305  "language_info": {
306   "codemirror_mode": {
307    "name": "ipython",
308    "version": 3
309   },
310   "file_extension": ".py",
311   "mimetype": "text/x-python",
312   "name": "python",
313   "nbconvert_exporter": "python",
314   "pygments_lexer": "ipython3",
315   "version": "3.7.3"
316  },
317  "widgets": {
318   "application/vnd.jupyter.widget-state+json": {
319    "state": {
320     "01ea355e26484c13b1caaaf6d29ac0f2": {
321      "model_module": "@jupyter-widgets/output",
322      "model_module_version": "1.0.0",
323      "model_name": "OutputModel",
324      "state": {
325       "layout": "IPY_MODEL_7213e178683c4d0682b3c848a2452cf1",
326       "outputs": [
327        {
328         "name": "stdout",
329         "output_type": "stream",
330         "text": "in outer\n"
331        }
332       ]
333      }
334     },
335     "025929abe8a143a08ad23de9e99c610f": {
336      "model_module": "@jupyter-widgets/base",
337      "model_module_version": "1.2.0",
338      "model_name": "LayoutModel",
339      "state": {}
340     },
341     "03c04d8645a74c4dac2e08e2142122a6": {
342      "model_module": "@jupyter-widgets/base",
343      "model_module_version": "1.2.0",
344      "model_name": "LayoutModel",
345      "state": {}
346     },
347     "091f6e59c48442b1bdb13320b4f6605d": {
348      "model_module": "@jupyter-widgets/base",
349      "model_module_version": "1.2.0",
350      "model_name": "LayoutModel",
351      "state": {}
352     },
353     "10517a9d5b1d4ea386945642894dd898": {
354      "model_module": "@jupyter-widgets/output",
355      "model_module_version": "1.0.0",
356      "model_name": "OutputModel",
357      "state": {
358       "layout": "IPY_MODEL_2c67de94f62d4887866d22abca7f6f13"
359      }
360     },
361     "106de0ded502439c873de5449248b00c": {
362      "model_module": "@jupyter-widgets/base",
363      "model_module_version": "1.2.0",
364      "model_name": "LayoutModel",
365      "state": {}
366     },
367     "1b9529b98aaf40ccbbf38e178796be88": {
368      "model_module": "@jupyter-widgets/base",
369      "model_module_version": "1.2.0",
370      "model_name": "LayoutModel",
371      "state": {}
372     },
373     "22592f3cb7674cb79cc60def5e8bc060": {
374      "model_module": "@jupyter-widgets/base",
375      "model_module_version": "1.2.0",
376      "model_name": "LayoutModel",
377      "state": {}
378     },
379     "2468aac6020349139ee6236b5dde0310": {
380      "model_module": "@jupyter-widgets/output",
381      "model_module_version": "1.0.0",
382      "model_name": "OutputModel",
383      "state": {
384       "layout": "IPY_MODEL_d5e88b6a26114d6da0b7af215aa2c3bb"
385      }
386     },
387     "2955dc9c531c4c6b80086da240d0df13": {
388      "model_module": "@jupyter-widgets/output",
389      "model_module_version": "1.0.0",
390      "model_name": "OutputModel",
391      "state": {
392       "layout": "IPY_MODEL_1b9529b98aaf40ccbbf38e178796be88",
393       "outputs": [
394        {
395         "name": "stdout",
396         "output_type": "stream",
397         "text": "world\n"
398        }
399       ]
400      }
401     },
402     "2c67de94f62d4887866d22abca7f6f13": {
403      "model_module": "@jupyter-widgets/base",
404      "model_module_version": "1.2.0",
405      "model_name": "LayoutModel",
406      "state": {}
407     },
408     "37f7ba6a9ecc4c19b519e718cd12aafe": {
409      "model_module": "@jupyter-widgets/output",
410      "model_module_version": "1.0.0",
411      "model_name": "OutputModel",
412      "state": {
413       "layout": "IPY_MODEL_03c04d8645a74c4dac2e08e2142122a6",
414       "outputs": [
415        {
416         "data": {
417          "text/plain": "'hello world'"
418         },
419         "metadata": {},
420         "output_type": "display_data"
421        }
422       ]
423      }
424     },
425     "3945ce528fbf40dc830767281892ea56": {
426      "model_module": "@jupyter-widgets/base",
427      "model_module_version": "1.2.0",
428      "model_name": "LayoutModel",
429      "state": {}
430     },
431     "3c6bb7a6fd4f4f8786d30ef7b2c7c050": {
432      "model_module": "@jupyter-widgets/base",
433      "model_module_version": "1.2.0",
434      "model_name": "LayoutModel",
435      "state": {}
436     },
437     "3e0e8f5d18fe4992b11e1d5c13faecdf": {
438      "model_module": "@jupyter-widgets/base",
439      "model_module_version": "1.2.0",
440      "model_name": "LayoutModel",
441      "state": {}
442     },
443     "44dc393cd7c6461a8c4901f85becfc0e": {
444      "model_module": "@jupyter-widgets/output",
445      "model_module_version": "1.0.0",
446      "model_name": "OutputModel",
447      "state": {
448       "layout": "IPY_MODEL_3c6bb7a6fd4f4f8786d30ef7b2c7c050",
449       "outputs": [
450        {
451         "name": "stdout",
452         "output_type": "stream",
453         "text": "in output2\n"
454        }
455       ]
456      }
457     },
458     "45823daa739447a6ba5393e45204ec8e": {
459      "model_module": "@jupyter-widgets/output",
460      "model_module_version": "1.0.0",
461      "model_name": "OutputModel",
462      "state": {
463       "layout": "IPY_MODEL_3e0e8f5d18fe4992b11e1d5c13faecdf",
464       "outputs": [
465        {
466         "data": {
467          "text/plain": "'hello world'"
468         },
469         "metadata": {},
470         "output_type": "display_data"
471        }
472       ]
473      }
474     },
475     "4fa2d1a41bd64017a20e358526ad9cf3": {
476      "model_module": "@jupyter-widgets/output",
477      "model_module_version": "1.0.0",
478      "model_name": "OutputModel",
479      "state": {
480       "layout": "IPY_MODEL_6490daaa1d2e42a0aef909e7b8c8eff4",
481       "outputs": [
482        {
483         "data": {
484          "text/plain": "'hello world'"
485         },
486         "metadata": {},
487         "output_type": "display_data"
488        }
489       ]
490      }
491     },
492     "4fb0ee7e557440109c08547514f03c7b": {
493      "model_module": "@jupyter-widgets/output",
494      "model_module_version": "1.0.0",
495      "model_name": "OutputModel",
496      "state": {
497       "layout": "IPY_MODEL_dbf140d66ba247b7847c0f5642b7f607",
498       "outputs": [
499        {
500         "name": "stdout",
501         "output_type": "stream",
502         "text": "in inner\nalso in inner\n"
503        }
504       ]
505      }
506     },
507     "55aff5c4b53f440a868919f042cf9c14": {
508      "model_module": "@jupyter-widgets/output",
509      "model_module_version": "1.0.0",
510      "model_name": "OutputModel",
511      "state": {
512       "layout": "IPY_MODEL_a14653416772496aabed04b4719268ef",
513       "outputs": [
514        {
515         "name": "stdout",
516         "output_type": "stream",
517         "text": "in inner\nalso in inner\n"
518        }
519       ]
520      }
521     },
522     "5747ce87279c44519b9df62799e25e6f": {
523      "model_module": "@jupyter-widgets/output",
524      "model_module_version": "1.0.0",
525      "model_name": "OutputModel",
526      "state": {
527       "layout": "IPY_MODEL_6ef78dc31eec422ab2afce4be129836f",
528       "outputs": [
529        {
530         "name": "stdout",
531         "output_type": "stream",
532         "text": "in output2\n"
533        }
534       ]
535      }
536     },
537     "6490daaa1d2e42a0aef909e7b8c8eff4": {
538      "model_module": "@jupyter-widgets/base",
539      "model_module_version": "1.2.0",
540      "model_name": "LayoutModel",
541      "state": {}
542     },
543     "6ef78dc31eec422ab2afce4be129836f": {
544      "model_module": "@jupyter-widgets/base",
545      "model_module_version": "1.2.0",
546      "model_name": "LayoutModel",
547      "state": {}
548     },
549     "7134e81fdb364a738c1e58b26ec0d008": {
550      "model_module": "@jupyter-widgets/output",
551      "model_module_version": "1.0.0",
552      "model_name": "OutputModel",
553      "state": {
554       "layout": "IPY_MODEL_025929abe8a143a08ad23de9e99c610f",
555       "outputs": [
556        {
557         "name": "stdout",
558         "output_type": "stream",
559         "text": "in inner\nalso in inner\n"
560        }
561       ]
562      }
563     },
564     "7213e178683c4d0682b3c848a2452cf1": {
565      "model_module": "@jupyter-widgets/base",
566      "model_module_version": "1.2.0",
567      "model_name": "LayoutModel",
568      "state": {}
569     },
570     "804b6628ca0a48dfbad930615626b1fb": {
571      "model_module": "@jupyter-widgets/base",
572      "model_module_version": "1.2.0",
573      "model_name": "LayoutModel",
574      "state": {}
575     },
576     "a14653416772496aabed04b4719268ef": {
577      "model_module": "@jupyter-widgets/base",
578      "model_module_version": "1.2.0",
579      "model_name": "LayoutModel",
580      "state": {}
581     },
582     "a32671b19b814cf5bd964c36368f9f79": {
583      "model_module": "@jupyter-widgets/output",
584      "model_module_version": "1.0.0",
585      "model_name": "OutputModel",
586      "state": {
587       "layout": "IPY_MODEL_c843c22ff72e4983984ca4d62ce68e2b",
588       "outputs": [
589        {
590         "name": "stdout",
591         "output_type": "stream",
592         "text": "in outer\n"
593        }
594       ]
595      }
596     },
597     "aaf673ac9c774aaba4f751db2f3dd6c5": {
598      "model_module": "@jupyter-widgets/output",
599      "model_module_version": "1.0.0",
600      "model_name": "OutputModel",
601      "state": {
602       "layout": "IPY_MODEL_106de0ded502439c873de5449248b00c",
603       "outputs": [
604        {
605         "name": "stdout",
606         "output_type": "stream",
607         "text": "in output2\n"
608        }
609       ]
610      }
611     },
612     "bc3d9af2591e4a52af73921f46d79efa": {
613      "model_module": "@jupyter-widgets/output",
614      "model_module_version": "1.0.0",
615      "model_name": "OutputModel",
616      "state": {
617       "layout": "IPY_MODEL_22592f3cb7674cb79cc60def5e8bc060"
618      }
619     },
620     "c843c22ff72e4983984ca4d62ce68e2b": {
621      "model_module": "@jupyter-widgets/base",
622      "model_module_version": "1.2.0",
623      "model_name": "LayoutModel",
624      "state": {}
625     },
626     "cc022dc8b5584570a04facf68f9bdf0b": {
627      "model_module": "@jupyter-widgets/output",
628      "model_module_version": "1.0.0",
629      "model_name": "OutputModel",
630      "state": {
631       "layout": "IPY_MODEL_3945ce528fbf40dc830767281892ea56",
632       "outputs": [
633        {
634         "name": "stdout",
635         "output_type": "stream",
636         "text": "in outer\n"
637        }
638       ]
639      }
640     },
641     "d0cb56db68f2485480da1b2a43ad3c02": {
642      "model_module": "@jupyter-widgets/output",
643      "model_module_version": "1.0.0",
644      "model_name": "OutputModel",
645      "state": {
646       "layout": "IPY_MODEL_df4468e2240a430599a01e731472c319",
647       "outputs": [
648        {
649         "name": "stdout",
650         "output_type": "stream",
651         "text": "in output\n"
652        },
653        {
654         "ename": "ValueError",
655         "evalue": "trigger msg_type=error",
656         "output_type": "error",
657         "traceback": [
658          "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
659          "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
660          "\u001b[0;32m<ipython-input-15-7f84f5558b68>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0moutput1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m     \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"trigger msg_type=error\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
661          "\u001b[0;31mValueError\u001b[0m: trigger msg_type=error"
662         ]
663        }
664       ]
665      }
666     },
667     "d314a6ef74d947f3a2149bdf9b8b57a3": {
668      "model_module": "@jupyter-widgets/output",
669      "model_module_version": "1.0.0",
670      "model_name": "OutputModel",
671      "state": {
672       "layout": "IPY_MODEL_804b6628ca0a48dfbad930615626b1fb",
673       "outputs": [
674        {
675         "name": "stdout",
676         "output_type": "stream",
677         "text": "in output\n"
678        }
679       ]
680      }
681     },
682     "d5e88b6a26114d6da0b7af215aa2c3bb": {
683      "model_module": "@jupyter-widgets/base",
684      "model_module_version": "1.2.0",
685      "model_name": "LayoutModel",
686      "state": {}
687     },
688     "d6cd7a1de3494d2daff23c6d4ffe42ee": {
689      "model_module": "@jupyter-widgets/output",
690      "model_module_version": "1.0.0",
691      "model_name": "OutputModel",
692      "state": {
693       "layout": "IPY_MODEL_091f6e59c48442b1bdb13320b4f6605d",
694       "outputs": [
695        {
696         "name": "stdout",
697         "output_type": "stream",
698         "text": "world\n"
699        }
700       ]
701      }
702     },
703     "dbf140d66ba247b7847c0f5642b7f607": {
704      "model_module": "@jupyter-widgets/base",
705      "model_module_version": "1.2.0",
706      "model_name": "LayoutModel",
707      "state": {}
708     },
709     "de7ba4c0eed941a3b52fa940387d1415": {
710      "model_module": "@jupyter-widgets/base",
711      "model_module_version": "1.2.0",
712      "model_name": "LayoutModel",
713      "state": {}
714     },
715     "df4468e2240a430599a01e731472c319": {
716      "model_module": "@jupyter-widgets/base",
717      "model_module_version": "1.2.0",
718      "model_name": "LayoutModel",
719      "state": {}
720     },
721     "e152547dd69d46fcbcb602cf9f92e50b": {
722      "model_module": "@jupyter-widgets/output",
723      "model_module_version": "1.0.0",
724      "model_name": "OutputModel",
725      "state": {
726       "layout": "IPY_MODEL_de7ba4c0eed941a3b52fa940387d1415",
727       "outputs": [
728        {
729         "name": "stdout",
730         "output_type": "stream",
731         "text": "in output\n"
732        },
733        {
734         "ename": "ValueError",
735         "evalue": "trigger msg_type=error",
736         "output_type": "error",
737         "traceback": [
738          "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
739          "\u001b[0;31mValueError\u001b[0m                                Traceback (most recent call last)",
740          "\u001b[0;32m<ipython-input-3-7f84f5558b68>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0moutput1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m     \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"trigger msg_type=error\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
741          "\u001b[0;31mValueError\u001b[0m: trigger msg_type=error"
742         ]
743        }
744       ]
745      }
746     },
747     "e27795e5a4f14450b8c9590cac51cb6b": {
748      "model_module": "@jupyter-widgets/base",
749      "model_module_version": "1.2.0",
750      "model_name": "LayoutModel",
751      "state": {}
752     },
753     "e3e20af587534a9bb3fa413951ceb28d": {
754      "model_module": "@jupyter-widgets/output",
755      "model_module_version": "1.0.0",
756      "model_name": "OutputModel",
757      "state": {
758       "layout": "IPY_MODEL_e27795e5a4f14450b8c9590cac51cb6b",
759       "outputs": [
760        {
761         "name": "stdout",
762         "output_type": "stream",
763         "text": "world\n"
764        }
765       ]
766      }
767     }
768    },
769    "version_major": 2,
770    "version_minor": 0
771   }
772  }
773 },
774 "nbformat": 4,
775 "nbformat_minor": 2
776}
777