Show More
@@ -1,133 +1,133 b'' | |||||
1 | //---------------------------------------------------------------------------- |
|
1 | //---------------------------------------------------------------------------- | |
2 | // Copyright (C) 2008-2011 The IPython Development Team |
|
2 | // Copyright (C) 2008-2011 The IPython Development Team | |
3 | // |
|
3 | // | |
4 | // Distributed under the terms of the BSD License. The full license is in |
|
4 | // Distributed under the terms of the BSD License. The full license is in | |
5 | // the file COPYING, distributed as part of this software. |
|
5 | // the file COPYING, distributed as part of this software. | |
6 | //---------------------------------------------------------------------------- |
|
6 | //---------------------------------------------------------------------------- | |
7 |
|
7 | |||
8 | //============================================================================ |
|
8 | //============================================================================ | |
9 | // QuickHelp button |
|
9 | // QuickHelp button | |
10 | //============================================================================ |
|
10 | //============================================================================ | |
11 |
|
11 | |||
12 | var IPython = (function (IPython) { |
|
12 | var IPython = (function (IPython) { | |
13 | "use strict"; |
|
13 | "use strict"; | |
14 |
|
14 | |||
15 | var QuickHelp = function (selector) { |
|
15 | var QuickHelp = function (selector) { | |
16 | }; |
|
16 | }; | |
17 |
|
17 | |||
18 | QuickHelp.prototype.show_keyboard_shortcuts = function () { |
|
18 | QuickHelp.prototype.show_keyboard_shortcuts = function () { | |
19 | // toggles display of keyboard shortcut dialog |
|
19 | // toggles display of keyboard shortcut dialog | |
20 | var that = this; |
|
20 | var that = this; | |
21 | if ( this.shortcut_dialog ){ |
|
21 | if ( this.shortcut_dialog ){ | |
22 | // if dialog is already shown, close it |
|
22 | // if dialog is already shown, close it | |
23 | $(this.shortcut_dialog).modal("toggle"); |
|
23 | $(this.shortcut_dialog).modal("toggle"); | |
24 | return; |
|
24 | return; | |
25 | } |
|
25 | } | |
26 | var command_shortcuts = IPython.keyboard_manager.command_shortcuts.help(); |
|
26 | var command_shortcuts = IPython.keyboard_manager.command_shortcuts.help(); | |
27 | var edit_shortcuts = IPython.keyboard_manager.edit_shortcuts.help(); |
|
27 | var edit_shortcuts = IPython.keyboard_manager.edit_shortcuts.help(); | |
28 | var help, shortcut; |
|
28 | var help, shortcut; | |
29 | var i, half, n; |
|
29 | var i, half, n; | |
30 | var element = $('<div/>'); |
|
30 | var element = $('<div/>'); | |
31 |
|
31 | |||
32 | // The documentation |
|
32 | // The documentation | |
33 | var doc = $('<div/>').addClass('alert'); |
|
33 | var doc = $('<div/>').addClass('alert'); | |
34 | doc.append( |
|
34 | doc.append( | |
35 | $('<button/>').addClass('close').attr('data-dismiss','alert').html('×') |
|
35 | $('<button/>').addClass('close').attr('data-dismiss','alert').html('×') | |
36 | ).append( |
|
36 | ).append( | |
37 | 'The IPython Notebook has two different keyboard input modes. <b>Edit mode</b> '+ |
|
37 | 'The IPython Notebook has two different keyboard input modes. <b>Edit mode</b> '+ | |
38 | 'allows you to type code/text into a cell and is indicated by a green cell '+ |
|
38 | 'allows you to type code/text into a cell and is indicated by a green cell '+ | |
39 | 'border. <b>Command mode</b> binds the keyboard to notebook level actions '+ |
|
39 | 'border. <b>Command mode</b> binds the keyboard to notebook level actions '+ | |
40 | 'and is indicated by a grey cell border.' |
|
40 | 'and is indicated by a grey cell border.' | |
41 | ) |
|
41 | ) | |
42 | element.append(doc); |
|
42 | element.append(doc); | |
43 |
|
43 | |||
44 | // Command mode |
|
44 | // Command mode | |
45 | var cmd_div = this.build_command_help(); |
|
45 | var cmd_div = this.build_command_help(); | |
46 | element.append(cmd_div); |
|
46 | element.append(cmd_div); | |
47 |
|
47 | |||
48 | // Edit mode |
|
48 | // Edit mode | |
49 | var edit_div = this.build_edit_help(); |
|
49 | var edit_div = this.build_edit_help(); | |
50 | element.append(edit_div); |
|
50 | element.append(edit_div); | |
51 |
|
51 | |||
52 | this.shortcut_dialog = IPython.dialog.modal({ |
|
52 | this.shortcut_dialog = IPython.dialog.modal({ | |
53 | title : "Keyboard shortcuts", |
|
53 | title : "Keyboard shortcuts", | |
54 | body : element, |
|
54 | body : element, | |
55 | destroy : false, |
|
55 | destroy : false, | |
56 | buttons : { |
|
56 | buttons : { | |
57 | Close : {} |
|
57 | Close : {} | |
58 | } |
|
58 | } | |
59 | }); |
|
59 | }); | |
60 | }; |
|
60 | }; | |
61 |
|
61 | |||
62 | QuickHelp.prototype.build_command_help = function () { |
|
62 | QuickHelp.prototype.build_command_help = function () { | |
63 | var command_shortcuts = IPython.keyboard_manager.command_shortcuts.help(); |
|
63 | var command_shortcuts = IPython.keyboard_manager.command_shortcuts.help(); | |
64 | var help, shortcut; |
|
64 | var help, shortcut; | |
65 | var i, half, n; |
|
65 | var i, half, n; | |
66 |
|
66 | |||
67 | // Command mode |
|
67 | // Command mode | |
68 |
var cmd_div = $('<div/>').append($('<h4>Command Mode (press |
|
68 | var cmd_div = $('<div/>').append($('<h4>Command Mode (press <tt>esc</tt> to enable)</h4>')); | |
69 | var cmd_sub_div = $('<div/>').addClass('hbox'); |
|
69 | var cmd_sub_div = $('<div/>').addClass('hbox'); | |
70 | var cmd_col1 = $('<div/>').addClass('box-flex0'); |
|
70 | var cmd_col1 = $('<div/>').addClass('box-flex0'); | |
71 | var cmd_col2 = $('<div/>').addClass('box-flex0'); |
|
71 | var cmd_col2 = $('<div/>').addClass('box-flex0'); | |
72 | n = command_shortcuts.length; |
|
72 | n = command_shortcuts.length; | |
73 | half = ~~(n/2); // Truncate :) |
|
73 | half = ~~(n/2); // Truncate :) | |
74 | for (i=0; i<half; i++) { |
|
74 | for (i=0; i<half; i++) { | |
75 | help = command_shortcuts[i]['help']; |
|
75 | help = command_shortcuts[i]['help']; | |
76 | shortcut = command_shortcuts[i]['shortcut']; |
|
76 | shortcut = command_shortcuts[i]['shortcut']; | |
77 | cmd_col1.append($('<div>').addClass('quickhelp'). |
|
77 | cmd_col1.append($('<div>').addClass('quickhelp'). | |
78 | append($('<span/>').addClass('shortcut_key').text(shortcut)). |
|
78 | append($('<span/>').addClass('shortcut_key').text(shortcut)). | |
79 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) |
|
79 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) | |
80 | ); |
|
80 | ); | |
81 | }; |
|
81 | }; | |
82 | for (i=half; i<n; i++) { |
|
82 | for (i=half; i<n; i++) { | |
83 | help = command_shortcuts[i]['help']; |
|
83 | help = command_shortcuts[i]['help']; | |
84 | shortcut = command_shortcuts[i]['shortcut']; |
|
84 | shortcut = command_shortcuts[i]['shortcut']; | |
85 | cmd_col2.append($('<div>').addClass('quickhelp'). |
|
85 | cmd_col2.append($('<div>').addClass('quickhelp'). | |
86 | append($('<span/>').addClass('shortcut_key').text(shortcut)). |
|
86 | append($('<span/>').addClass('shortcut_key').text(shortcut)). | |
87 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) |
|
87 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) | |
88 | ); |
|
88 | ); | |
89 | }; |
|
89 | }; | |
90 | cmd_sub_div.append(cmd_col1).append(cmd_col2); |
|
90 | cmd_sub_div.append(cmd_col1).append(cmd_col2); | |
91 | cmd_div.append(cmd_sub_div); |
|
91 | cmd_div.append(cmd_sub_div); | |
92 | return cmd_div; |
|
92 | return cmd_div; | |
93 | } |
|
93 | } | |
94 |
|
94 | |||
95 | QuickHelp.prototype.build_edit_help = function () { |
|
95 | QuickHelp.prototype.build_edit_help = function () { | |
96 | var edit_shortcuts = IPython.keyboard_manager.edit_shortcuts.help(); |
|
96 | var edit_shortcuts = IPython.keyboard_manager.edit_shortcuts.help(); | |
97 | var help, shortcut; |
|
97 | var help, shortcut; | |
98 | var i, half, n; |
|
98 | var i, half, n; | |
99 |
|
99 | |||
100 | // Edit mode |
|
100 | // Edit mode | |
101 |
var edit_div = $('<div/>').append($('<h4>Edit Mode (press |
|
101 | var edit_div = $('<div/>').append($('<h4>Edit Mode (press <tt>enter</tt> to enable)</h4>')); | |
102 | var edit_sub_div = $('<div/>').addClass('hbox'); |
|
102 | var edit_sub_div = $('<div/>').addClass('hbox'); | |
103 | var edit_col1 = $('<div/>').addClass('box-flex0'); |
|
103 | var edit_col1 = $('<div/>').addClass('box-flex0'); | |
104 | var edit_col2 = $('<div/>').addClass('box-flex0'); |
|
104 | var edit_col2 = $('<div/>').addClass('box-flex0'); | |
105 | n = edit_shortcuts.length; |
|
105 | n = edit_shortcuts.length; | |
106 | half = ~~(n/2); // Truncate :) |
|
106 | half = ~~(n/2); // Truncate :) | |
107 | for (i=0; i<half; i++) { |
|
107 | for (i=0; i<half; i++) { | |
108 | help = edit_shortcuts[i]['help']; |
|
108 | help = edit_shortcuts[i]['help']; | |
109 | shortcut = edit_shortcuts[i]['shortcut']; |
|
109 | shortcut = edit_shortcuts[i]['shortcut']; | |
110 | edit_col1.append($('<div>').addClass('quickhelp'). |
|
110 | edit_col1.append($('<div>').addClass('quickhelp'). | |
111 | append($('<span/>').addClass('shortcut_key').text(shortcut)). |
|
111 | append($('<span/>').addClass('shortcut_key').text(shortcut)). | |
112 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) |
|
112 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) | |
113 | ); |
|
113 | ); | |
114 | }; |
|
114 | }; | |
115 | for (i=half; i<n; i++) { |
|
115 | for (i=half; i<n; i++) { | |
116 | help = edit_shortcuts[i]['help']; |
|
116 | help = edit_shortcuts[i]['help']; | |
117 | shortcut = edit_shortcuts[i]['shortcut']; |
|
117 | shortcut = edit_shortcuts[i]['shortcut']; | |
118 | edit_col2.append($('<div>').addClass('quickhelp'). |
|
118 | edit_col2.append($('<div>').addClass('quickhelp'). | |
119 | append($('<span/>').addClass('shortcut_key').text(shortcut)). |
|
119 | append($('<span/>').addClass('shortcut_key').text(shortcut)). | |
120 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) |
|
120 | append($('<span/>').addClass('shortcut_descr').text(' : ' + help)) | |
121 | ); |
|
121 | ); | |
122 | }; |
|
122 | }; | |
123 | edit_sub_div.append(edit_col1).append(edit_col2); |
|
123 | edit_sub_div.append(edit_col1).append(edit_col2); | |
124 | edit_div.append(edit_sub_div); |
|
124 | edit_div.append(edit_sub_div); | |
125 | return edit_div; |
|
125 | return edit_div; | |
126 | } |
|
126 | } | |
127 |
|
127 | |||
128 | // Set module variables |
|
128 | // Set module variables | |
129 | IPython.QuickHelp = QuickHelp; |
|
129 | IPython.QuickHelp = QuickHelp; | |
130 |
|
130 | |||
131 | return IPython; |
|
131 | return IPython; | |
132 |
|
132 | |||
133 | }(IPython)); |
|
133 | }(IPython)); |
@@ -1,175 +1,175 b'' | |||||
1 | //---------------------------------------------------------------------------- |
|
1 | //---------------------------------------------------------------------------- | |
2 | // Copyright (C) 2011 The IPython Development Team |
|
2 | // Copyright (C) 2011 The IPython Development Team | |
3 | // |
|
3 | // | |
4 | // Distributed under the terms of the BSD License. The full license is in |
|
4 | // Distributed under the terms of the BSD License. The full license is in | |
5 | // the file COPYING, distributed as part of this software. |
|
5 | // the file COPYING, distributed as part of this software. | |
6 | //---------------------------------------------------------------------------- |
|
6 | //---------------------------------------------------------------------------- | |
7 |
|
7 | |||
8 | //============================================================================ |
|
8 | //============================================================================ | |
9 | // Tour of IPython Notebok UI (with Bootstrap Tour) |
|
9 | // Tour of IPython Notebok UI (with Bootstrap Tour) | |
10 | //============================================================================ |
|
10 | //============================================================================ | |
11 |
|
11 | |||
12 | var tour_steps = [ |
|
12 | var tour_steps = [ | |
13 | { |
|
13 | { | |
14 | element: $("#ipython_notebook"), |
|
14 | element: $("#ipython_notebook"), | |
15 | title: "Welcome to the Notebook Tour", |
|
15 | title: "Welcome to the Notebook Tour", | |
16 | placement: 'bottom', |
|
16 | placement: 'bottom', | |
17 | content: "This tour will take 2 minutes.", |
|
17 | content: "This tour will take 2 minutes.", | |
18 | backdrop: true, |
|
18 | backdrop: true, | |
19 | }, { |
|
19 | }, { | |
20 | element: "#notebook_name", |
|
20 | element: "#notebook_name", | |
21 | title: "Filename", |
|
21 | title: "Filename", | |
22 | placement: 'bottom', |
|
22 | placement: 'bottom', | |
23 | content: "Click here to change the filename for this notebook." |
|
23 | content: "Click here to change the filename for this notebook." | |
24 | }, { |
|
24 | }, { | |
25 | element: "#checkpoint_status", |
|
25 | element: "#checkpoint_status", | |
26 | title: "Checkpoint Status", |
|
26 | title: "Checkpoint Status", | |
27 | placement: 'bottom', |
|
27 | placement: 'bottom', | |
28 | content: "Information about the last time this notebook was saved." |
|
28 | content: "Information about the last time this notebook was saved." | |
29 | }, { |
|
29 | }, { | |
30 | element: $("#menus").parent(), |
|
30 | element: $("#menus").parent(), | |
31 | placement: 'bottom', |
|
31 | placement: 'bottom', | |
32 | backdrop: true, |
|
32 | backdrop: true, | |
33 | title: "Notebook Menubar", |
|
33 | title: "Notebook Menubar", | |
34 | content: "The menubar has menus for actions on the notebook, its cells, and the kernel it communicates with." |
|
34 | content: "The menubar has menus for actions on the notebook, its cells, and the kernel it communicates with." | |
35 | }, { |
|
35 | }, { | |
36 | element: "#maintoolbar", |
|
36 | element: "#maintoolbar", | |
37 | placement: 'bottom', |
|
37 | placement: 'bottom', | |
38 | backdrop: true, |
|
38 | backdrop: true, | |
39 | title: "Notebook Toolbar", |
|
39 | title: "Notebook Toolbar", | |
40 | content: "The toolbar has buttons for the most common actions. Hover your mouse over each button for more information." |
|
40 | content: "The toolbar has buttons for the most common actions. Hover your mouse over each button for more information." | |
41 | }, { |
|
41 | }, { | |
42 | element: "#modal_indicator", |
|
42 | element: "#modal_indicator", | |
43 | title: "Mode Indicator", |
|
43 | title: "Mode Indicator", | |
44 | placement: 'bottom', |
|
44 | placement: 'bottom', | |
45 | content: "IPython has two modes: Edit Mode and Command Mode. In this area, an indicator can appear to tell you which mode you are in.", |
|
45 | content: "IPython has two modes: Edit Mode and Command Mode. In this area, an indicator can appear to tell you which mode you are in.", | |
46 | onShow: function(tour) { command_icon_hack(); } |
|
46 | onShow: function(tour) { command_icon_hack(); } | |
47 | }, { |
|
47 | }, { | |
48 | element: "#modal_indicator", |
|
48 | element: "#modal_indicator", | |
49 | title: "Command Mode", |
|
49 | title: "Command Mode", | |
50 | placement: 'bottom', |
|
50 | placement: 'bottom', | |
51 | onShow: function(tour) { IPython.notebook.command_mode(); command_icon_hack(); }, |
|
51 | onShow: function(tour) { IPython.notebook.command_mode(); command_icon_hack(); }, | |
52 | onNext: function(tour) { edit_mode(); }, |
|
52 | onNext: function(tour) { edit_mode(); }, | |
53 | content: "Right now you are in Command Mode, and many keyboard shortcuts are available. In this mode, no icon is displayed in the indicator area." |
|
53 | content: "Right now you are in Command Mode, and many keyboard shortcuts are available. In this mode, no icon is displayed in the indicator area." | |
54 | }, { |
|
54 | }, { | |
55 | element: "#modal_indicator", |
|
55 | element: "#modal_indicator", | |
56 | title: "Edit Mode", |
|
56 | title: "Edit Mode", | |
57 | placement: 'bottom', |
|
57 | placement: 'bottom', | |
58 | onShow: function(tour) { edit_mode(); }, |
|
58 | onShow: function(tour) { edit_mode(); }, | |
59 |
content: "Pressing |
|
59 | content: "Pressing <tt>enter</tt> or clicking in the input text area of the cell switches to Edit Mode." | |
60 | }, { |
|
60 | }, { | |
61 | element: '.selected', |
|
61 | element: '.selected', | |
62 | title: "Edit Mode", |
|
62 | title: "Edit Mode", | |
63 | placement: 'bottom', |
|
63 | placement: 'bottom', | |
64 | onShow: function(tour) { edit_mode(); }, |
|
64 | onShow: function(tour) { edit_mode(); }, | |
65 | content: "Notice that the border around the currently active cell changed color. Typing will insert text into the currently active cell." |
|
65 | content: "Notice that the border around the currently active cell changed color. Typing will insert text into the currently active cell." | |
66 | }, { |
|
66 | }, { | |
67 | element: '.selected', |
|
67 | element: '.selected', | |
68 | title: "Back to Command Mode", |
|
68 | title: "Back to Command Mode", | |
69 | placement: 'bottom', |
|
69 | placement: 'bottom', | |
70 | onShow: function(tour) { IPython.notebook.command_mode(); }, |
|
70 | onShow: function(tour) { IPython.notebook.command_mode(); }, | |
71 |
content: "Pressing |
|
71 | content: "Pressing <tt>esc</tt> or clicking outside of the input text area takes you back to Command Mode." | |
72 | }, { |
|
72 | }, { | |
73 | element: '#keyboard_shortcuts', |
|
73 | element: '#keyboard_shortcuts', | |
74 | title: "Keyboard Shortcuts", |
|
74 | title: "Keyboard Shortcuts", | |
75 | placement: 'bottom', |
|
75 | placement: 'bottom', | |
76 | onShow: function(tour) { $('#help_menu').parent().addClass('open'); }, |
|
76 | onShow: function(tour) { $('#help_menu').parent().addClass('open'); }, | |
77 | onHide: function(tour) { $('#help_menu').parent().removeClass('open'); }, |
|
77 | onHide: function(tour) { $('#help_menu').parent().removeClass('open'); }, | |
78 | content: "You can click here to get a list of all of the keyboard shortcuts." |
|
78 | content: "You can click here to get a list of all of the keyboard shortcuts." | |
79 | }, { |
|
79 | }, { | |
80 | element: "#kernel_indicator", |
|
80 | element: "#kernel_indicator", | |
81 | title: "Kernel Indicator", |
|
81 | title: "Kernel Indicator", | |
82 | placement: 'bottom', |
|
82 | placement: 'bottom', | |
83 | onShow: function(tour) { $([IPython.events]).trigger('status_idle.Kernel');}, |
|
83 | onShow: function(tour) { $([IPython.events]).trigger('status_idle.Kernel');}, | |
84 | content: "This is the Kernel indicator. It looks like this when the Kernel is idle.", |
|
84 | content: "This is the Kernel indicator. It looks like this when the Kernel is idle.", | |
85 | }, { |
|
85 | }, { | |
86 | element: "#kernel_indicator", |
|
86 | element: "#kernel_indicator", | |
87 | title: "Kernel Indicator", |
|
87 | title: "Kernel Indicator", | |
88 | placement: 'bottom', |
|
88 | placement: 'bottom', | |
89 | onShow: function(tour) { $([IPython.events]).trigger('status_busy.Kernel'); }, |
|
89 | onShow: function(tour) { $([IPython.events]).trigger('status_busy.Kernel'); }, | |
90 | content: "The Kernel indicator looks like this when the Kernel is busy.", |
|
90 | content: "The Kernel indicator looks like this when the Kernel is busy.", | |
91 | }, { |
|
91 | }, { | |
92 | element: ".icon-stop", |
|
92 | element: ".icon-stop", | |
93 | placement: 'bottom', |
|
93 | placement: 'bottom', | |
94 | title: "Interrupting the Kernel", |
|
94 | title: "Interrupting the Kernel", | |
95 | onHide: function(tour) { $([IPython.events]).trigger('status_idle.Kernel'); }, |
|
95 | onHide: function(tour) { $([IPython.events]).trigger('status_idle.Kernel'); }, | |
96 | content: "To cancel a computation in progress, you can click here." |
|
96 | content: "To cancel a computation in progress, you can click here." | |
97 | }, { |
|
97 | }, { | |
98 | element: "#notification_kernel", |
|
98 | element: "#notification_kernel", | |
99 | placement: 'bottom', |
|
99 | placement: 'bottom', | |
100 | onShow: function(tour) { $('.icon-stop').click(); }, |
|
100 | onShow: function(tour) { $('.icon-stop').click(); }, | |
101 | title: "Notification Area", |
|
101 | title: "Notification Area", | |
102 | content: "Messages in response to user actions (Save, Interrupt, etc) appear here." |
|
102 | content: "Messages in response to user actions (Save, Interrupt, etc) appear here." | |
103 | }, { |
|
103 | }, { | |
104 | element: "#ipython_notebook", |
|
104 | element: "#ipython_notebook", | |
105 | title: "Fin.", |
|
105 | title: "Fin.", | |
106 | placement: 'bottom', |
|
106 | placement: 'bottom', | |
107 | backdrop: true, |
|
107 | backdrop: true, | |
108 | content: "This concludes the IPython Notebook User Interface Tour. Happy hacking!", |
|
108 | content: "This concludes the IPython Notebook User Interface Tour. Happy hacking!", | |
109 | } |
|
109 | } | |
110 | ]; |
|
110 | ]; | |
111 |
|
111 | |||
112 | var tour_style = "<div class='popover tour' style='position:relative'>\ |
|
112 | var tour_style = "<div class='popover tour' style='position:relative'>\ | |
113 | <div class='arrow'></div>\ |
|
113 | <div class='arrow'></div>\ | |
114 | <div style='position:absolute; top:7px; right:7px'>\ |
|
114 | <div style='position:absolute; top:7px; right:7px'>\ | |
115 | <button class='btn btn-sm icon-remove' data-role='end'></button></div>\ |
|
115 | <button class='btn btn-sm icon-remove' data-role='end'></button></div>\ | |
116 | <h3 class='popover-title'></h3>\ |
|
116 | <h3 class='popover-title'></h3>\ | |
117 | <div class='popover-content'></div>\ |
|
117 | <div class='popover-content'></div>\ | |
118 | <div class='popover-navigation'>\ |
|
118 | <div class='popover-navigation'>\ | |
119 | <button class='btn btn-default icon-step-backward' data-role='prev'></button>\ |
|
119 | <button class='btn btn-default icon-step-backward' data-role='prev'></button>\ | |
120 | <button class='btn btn-default icon-step-forward pull-right' data-role='next'></button>\ |
|
120 | <button class='btn btn-default icon-step-forward pull-right' data-role='next'></button>\ | |
121 | <button id='tour-pause' class='btn btn-sm btn-default icon-pause' data-resume-text='' data-pause-text='' data-role='pause-resume'></button>\ |
|
121 | <button id='tour-pause' class='btn btn-sm btn-default icon-pause' data-resume-text='' data-pause-text='' data-role='pause-resume'></button>\ | |
122 | </div>\ |
|
122 | </div>\ | |
123 | </div>"; |
|
123 | </div>"; | |
124 |
|
124 | |||
125 | var command_icon_hack = function() {$('#modal_indicator').css('min-height', 20);} |
|
125 | var command_icon_hack = function() {$('#modal_indicator').css('min-height', 20);} | |
126 | var toggle_pause_play = function () { $('#tour-pause').toggleClass('icon-pause icon-play'); }; |
|
126 | var toggle_pause_play = function () { $('#tour-pause').toggleClass('icon-pause icon-play'); }; | |
127 | var edit_mode = function() { |
|
127 | var edit_mode = function() { | |
128 | IPython.notebook.focus_cell(); |
|
128 | IPython.notebook.focus_cell(); | |
129 | IPython.notebook.edit_mode(); |
|
129 | IPython.notebook.edit_mode(); | |
130 | ;} |
|
130 | ;} | |
131 |
|
131 | |||
132 | IPython = (function (IPython) { |
|
132 | IPython = (function (IPython) { | |
133 | "use strict"; |
|
133 | "use strict"; | |
134 |
|
134 | |||
135 |
|
135 | |||
136 | var NotebookTour = function () { |
|
136 | var NotebookTour = function () { | |
137 | this.step_duration = 0; |
|
137 | this.step_duration = 0; | |
138 | this.tour_steps = tour_steps ; |
|
138 | this.tour_steps = tour_steps ; | |
139 | this.tour_steps[0].content = "You can use the left and right arrow keys to go backwards and forwards."; |
|
139 | this.tour_steps[0].content = "You can use the left and right arrow keys to go backwards and forwards."; | |
140 | this.tour = new Tour({ |
|
140 | this.tour = new Tour({ | |
141 | //orphan: true, |
|
141 | //orphan: true, | |
142 | storage: false, // start tour from beginning every time |
|
142 | storage: false, // start tour from beginning every time | |
143 | //element: $("#ipython_notebook"), |
|
143 | //element: $("#ipython_notebook"), | |
144 | debug: true, |
|
144 | debug: true, | |
145 | reflex: true, // click on element to continue tour |
|
145 | reflex: true, // click on element to continue tour | |
146 | //backdrop: true, // show dark behind popover |
|
146 | //backdrop: true, // show dark behind popover | |
147 | animation: false, |
|
147 | animation: false, | |
148 | duration: this.step_duration, |
|
148 | duration: this.step_duration, | |
149 | onStart: function() { console.log('tour started'); }, |
|
149 | onStart: function() { console.log('tour started'); }, | |
150 | // TODO: remove the onPause/onResume logic once pi's patch has been |
|
150 | // TODO: remove the onPause/onResume logic once pi's patch has been | |
151 | // merged upstream to make this work via data-resume-class and |
|
151 | // merged upstream to make this work via data-resume-class and | |
152 | // data-resume-text attributes. |
|
152 | // data-resume-text attributes. | |
153 | onPause: toggle_pause_play, |
|
153 | onPause: toggle_pause_play, | |
154 | onResume: toggle_pause_play, |
|
154 | onResume: toggle_pause_play, | |
155 | steps: this.tour_steps, |
|
155 | steps: this.tour_steps, | |
156 | template: tour_style |
|
156 | template: tour_style | |
157 | }); |
|
157 | }); | |
158 | this.tour.init(); |
|
158 | this.tour.init(); | |
159 | }; |
|
159 | }; | |
160 |
|
160 | |||
161 | NotebookTour.prototype.start = function () { |
|
161 | NotebookTour.prototype.start = function () { | |
162 | console.log("let's start the tour"); |
|
162 | console.log("let's start the tour"); | |
163 | this.tour.start(); |
|
163 | this.tour.start(); | |
164 | if (this.tour.ended()) |
|
164 | if (this.tour.ended()) | |
165 | { |
|
165 | { | |
166 | this.tour.restart(); |
|
166 | this.tour.restart(); | |
167 | } |
|
167 | } | |
168 | }; |
|
168 | }; | |
169 |
|
169 | |||
170 | // Set module variables |
|
170 | // Set module variables | |
171 | IPython.NotebookTour = NotebookTour; |
|
171 | IPython.NotebookTour = NotebookTour; | |
172 |
|
172 | |||
173 | return IPython; |
|
173 | return IPython; | |
174 |
|
174 | |||
175 | }(IPython)); |
|
175 | }(IPython)); |
@@ -1,472 +1,472 b'' | |||||
1 | { |
|
1 | { | |
2 | "metadata": { |
|
2 | "metadata": { | |
3 | "name": "" |
|
3 | "name": "" | |
4 | }, |
|
4 | }, | |
5 | "nbformat": 3, |
|
5 | "nbformat": 3, | |
6 | "nbformat_minor": 0, |
|
6 | "nbformat_minor": 0, | |
7 | "worksheets": [ |
|
7 | "worksheets": [ | |
8 | { |
|
8 | { | |
9 | "cells": [ |
|
9 | "cells": [ | |
10 | { |
|
10 | { | |
11 | "cell_type": "heading", |
|
11 | "cell_type": "heading", | |
12 | "level": 1, |
|
12 | "level": 1, | |
13 | "metadata": {}, |
|
13 | "metadata": {}, | |
14 | "source": [ |
|
14 | "source": [ | |
15 | "Running Code in the IPython Notebook" |
|
15 | "Running Code in the IPython Notebook" | |
16 | ] |
|
16 | ] | |
17 | }, |
|
17 | }, | |
18 | { |
|
18 | { | |
19 | "cell_type": "markdown", |
|
19 | "cell_type": "markdown", | |
20 | "metadata": {}, |
|
20 | "metadata": {}, | |
21 | "source": [ |
|
21 | "source": [ | |
22 | "First and foremost, the IPython Notebook is an interactive environment for writing and running Python code." |
|
22 | "First and foremost, the IPython Notebook is an interactive environment for writing and running Python code." | |
23 | ] |
|
23 | ] | |
24 | }, |
|
24 | }, | |
25 | { |
|
25 | { | |
26 | "cell_type": "heading", |
|
26 | "cell_type": "heading", | |
27 | "level": 2, |
|
27 | "level": 2, | |
28 | "metadata": {}, |
|
28 | "metadata": {}, | |
29 | "source": [ |
|
29 | "source": [ | |
30 | "Code cells allow you to enter and run Python code" |
|
30 | "Code cells allow you to enter and run Python code" | |
31 | ] |
|
31 | ] | |
32 | }, |
|
32 | }, | |
33 | { |
|
33 | { | |
34 | "cell_type": "markdown", |
|
34 | "cell_type": "markdown", | |
35 | "metadata": {}, |
|
35 | "metadata": {}, | |
36 | "source": [ |
|
36 | "source": [ | |
37 | "\n", |
|
37 | "\n", | |
38 | "<script type=\"text/javascript\">\n", |
|
38 | "<script type=\"text/javascript\">\n", | |
39 | "var _toggle=false;\n", |
|
39 | "var _toggle=false;\n", | |
40 | "var hl = function (id, on){\n", |
|
40 | "var hl = function (id, on){\n", | |
41 | " $(id)[0].style.background = '';\n", |
|
41 | " $(id)[0].style.background = '';\n", | |
42 | " if (on) {\n", |
|
42 | " if (on) {\n", | |
43 | " $(id)[0].style.background = 'lightcyan';\n", |
|
43 | " $(id)[0].style.background = 'lightcyan';\n", | |
44 | " }\n", |
|
44 | " }\n", | |
45 | "};\n", |
|
45 | "};\n", | |
46 | "</script>\n", |
|
46 | "</script>\n", | |
47 | "\n", |
|
47 | "\n", | |
48 |
"Run a code cell using ` |
|
48 | "Run a code cell using `shift-enter` or pressing the <button><i class=\"icon-play\"></i></button> button in the <a href=\"#\" onMouseover=\"hl('#maintoolbar-container', 1)\" onMouseout=\"hl('#maintoolbar-container', 0)\">toolbar</a> above:" | |
49 | ] |
|
49 | ] | |
50 | }, |
|
50 | }, | |
51 | { |
|
51 | { | |
52 | "cell_type": "code", |
|
52 | "cell_type": "code", | |
53 | "collapsed": false, |
|
53 | "collapsed": false, | |
54 | "input": [ |
|
54 | "input": [ | |
55 | "a = 10" |
|
55 | "a = 10" | |
56 | ], |
|
56 | ], | |
57 | "language": "python", |
|
57 | "language": "python", | |
58 | "metadata": {}, |
|
58 | "metadata": {}, | |
59 | "outputs": [], |
|
59 | "outputs": [], | |
60 | "prompt_number": 10 |
|
60 | "prompt_number": 10 | |
61 | }, |
|
61 | }, | |
62 | { |
|
62 | { | |
63 | "cell_type": "code", |
|
63 | "cell_type": "code", | |
64 | "collapsed": false, |
|
64 | "collapsed": false, | |
65 | "input": [ |
|
65 | "input": [ | |
66 | "print(a)" |
|
66 | "print(a)" | |
67 | ], |
|
67 | ], | |
68 | "language": "python", |
|
68 | "language": "python", | |
69 | "metadata": {}, |
|
69 | "metadata": {}, | |
70 | "outputs": [ |
|
70 | "outputs": [ | |
71 | { |
|
71 | { | |
72 | "output_type": "stream", |
|
72 | "output_type": "stream", | |
73 | "stream": "stdout", |
|
73 | "stream": "stdout", | |
74 | "text": [ |
|
74 | "text": [ | |
75 | "10\n" |
|
75 | "10\n" | |
76 | ] |
|
76 | ] | |
77 | } |
|
77 | } | |
78 | ], |
|
78 | ], | |
79 | "prompt_number": 11 |
|
79 | "prompt_number": 11 | |
80 | }, |
|
80 | }, | |
81 | { |
|
81 | { | |
82 | "cell_type": "heading", |
|
82 | "cell_type": "heading", | |
83 | "level": 2, |
|
83 | "level": 2, | |
84 | "metadata": {}, |
|
84 | "metadata": {}, | |
85 | "source": [ |
|
85 | "source": [ | |
86 | "Managing the IPython Kernel" |
|
86 | "Managing the IPython Kernel" | |
87 | ] |
|
87 | ] | |
88 | }, |
|
88 | }, | |
89 | { |
|
89 | { | |
90 | "cell_type": "markdown", |
|
90 | "cell_type": "markdown", | |
91 | "metadata": {}, |
|
91 | "metadata": {}, | |
92 | "source": [ |
|
92 | "source": [ | |
93 | "Code is run in a separate process called the IPython Kernel. The Kernel can be interrupted or restarted. Try running the following cell and then hit the <button><i class='icon-stop'></i></button> button in the <a href=\"#\" onMouseover=\"hl('#maintoolbar-container', 1)\" onMouseout=\"hl('#maintoolbar-container', 0)\">toolbar</a> above." |
|
93 | "Code is run in a separate process called the IPython Kernel. The Kernel can be interrupted or restarted. Try running the following cell and then hit the <button><i class='icon-stop'></i></button> button in the <a href=\"#\" onMouseover=\"hl('#maintoolbar-container', 1)\" onMouseout=\"hl('#maintoolbar-container', 0)\">toolbar</a> above." | |
94 | ] |
|
94 | ] | |
95 | }, |
|
95 | }, | |
96 | { |
|
96 | { | |
97 | "cell_type": "code", |
|
97 | "cell_type": "code", | |
98 | "collapsed": false, |
|
98 | "collapsed": false, | |
99 | "input": [ |
|
99 | "input": [ | |
100 | "import time\n", |
|
100 | "import time\n", | |
101 | "time.sleep(10)" |
|
101 | "time.sleep(10)" | |
102 | ], |
|
102 | ], | |
103 | "language": "python", |
|
103 | "language": "python", | |
104 | "metadata": {}, |
|
104 | "metadata": {}, | |
105 | "outputs": [ |
|
105 | "outputs": [ | |
106 | { |
|
106 | { | |
107 | "ename": "KeyboardInterrupt", |
|
107 | "ename": "KeyboardInterrupt", | |
108 | "evalue": "", |
|
108 | "evalue": "", | |
109 | "output_type": "pyerr", |
|
109 | "output_type": "pyerr", | |
110 | "traceback": [ |
|
110 | "traceback": [ | |
111 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", |
|
111 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", | |
112 | "\u001b[0;32m<ipython-input-16-d7b436e260d5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msleep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", |
|
112 | "\u001b[0;32m<ipython-input-16-d7b436e260d5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mtime\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mtime\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msleep\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
113 | "\u001b[0;31mKeyboardInterrupt\u001b[0m: " |
|
113 | "\u001b[0;31mKeyboardInterrupt\u001b[0m: " | |
114 | ] |
|
114 | ] | |
115 | } |
|
115 | } | |
116 | ], |
|
116 | ], | |
117 | "prompt_number": 16 |
|
117 | "prompt_number": 16 | |
118 | }, |
|
118 | }, | |
119 | { |
|
119 | { | |
120 | "cell_type": "markdown", |
|
120 | "cell_type": "markdown", | |
121 | "metadata": {}, |
|
121 | "metadata": {}, | |
122 | "source": [ |
|
122 | "source": [ | |
123 | "If the Kernel dies you will be prompted to restart it. Here we call the low-level system libc.time routine with the wrong argument via\n", |
|
123 | "If the Kernel dies you will be prompted to restart it. Here we call the low-level system libc.time routine with the wrong argument via\n", | |
124 | "ctypes to segfault the Python interpreter:" |
|
124 | "ctypes to segfault the Python interpreter:" | |
125 | ] |
|
125 | ] | |
126 | }, |
|
126 | }, | |
127 | { |
|
127 | { | |
128 | "cell_type": "code", |
|
128 | "cell_type": "code", | |
129 | "collapsed": false, |
|
129 | "collapsed": false, | |
130 | "input": [ |
|
130 | "input": [ | |
131 | "import sys\n", |
|
131 | "import sys\n", | |
132 | "from ctypes import CDLL\n", |
|
132 | "from ctypes import CDLL\n", | |
133 | "# This will crash a Linux or Mac system; equivalent calls can be made on Windows\n", |
|
133 | "# This will crash a Linux or Mac system; equivalent calls can be made on Windows\n", | |
134 | "dll = 'dylib' if sys.platform == 'darwin' else 'so.6'\n", |
|
134 | "dll = 'dylib' if sys.platform == 'darwin' else 'so.6'\n", | |
135 | "libc = CDLL(\"libc.%s\" % dll) \n", |
|
135 | "libc = CDLL(\"libc.%s\" % dll) \n", | |
136 | "libc.time(-1) # BOOM!!" |
|
136 | "libc.time(-1) # BOOM!!" | |
137 | ], |
|
137 | ], | |
138 | "language": "python", |
|
138 | "language": "python", | |
139 | "metadata": {}, |
|
139 | "metadata": {}, | |
140 | "outputs": [] |
|
140 | "outputs": [] | |
141 | }, |
|
141 | }, | |
142 | { |
|
142 | { | |
143 | "cell_type": "heading", |
|
143 | "cell_type": "heading", | |
144 | "level": 2, |
|
144 | "level": 2, | |
145 | "metadata": {}, |
|
145 | "metadata": {}, | |
146 | "source": [ |
|
146 | "source": [ | |
147 | "All of the goodness of IPython works" |
|
147 | "All of the goodness of IPython works" | |
148 | ] |
|
148 | ] | |
149 | }, |
|
149 | }, | |
150 | { |
|
150 | { | |
151 | "cell_type": "markdown", |
|
151 | "cell_type": "markdown", | |
152 | "metadata": {}, |
|
152 | "metadata": {}, | |
153 | "source": [ |
|
153 | "source": [ | |
154 | "Here are two system aliases:" |
|
154 | "Here are two system aliases:" | |
155 | ] |
|
155 | ] | |
156 | }, |
|
156 | }, | |
157 | { |
|
157 | { | |
158 | "cell_type": "code", |
|
158 | "cell_type": "code", | |
159 | "collapsed": false, |
|
159 | "collapsed": false, | |
160 | "input": [ |
|
160 | "input": [ | |
161 | "pwd" |
|
161 | "pwd" | |
162 | ], |
|
162 | ], | |
163 | "language": "python", |
|
163 | "language": "python", | |
164 | "metadata": {}, |
|
164 | "metadata": {}, | |
165 | "outputs": [ |
|
165 | "outputs": [ | |
166 | { |
|
166 | { | |
167 | "metadata": {}, |
|
167 | "metadata": {}, | |
168 | "output_type": "pyout", |
|
168 | "output_type": "pyout", | |
169 | "prompt_number": 4, |
|
169 | "prompt_number": 4, | |
170 | "text": [ |
|
170 | "text": [ | |
171 | "u'/Users/bgranger/Documents/Computation/IPython/code/ipython/examples/notebooks'" |
|
171 | "u'/Users/bgranger/Documents/Computation/IPython/code/ipython/examples/notebooks'" | |
172 | ] |
|
172 | ] | |
173 | } |
|
173 | } | |
174 | ], |
|
174 | ], | |
175 | "prompt_number": 4 |
|
175 | "prompt_number": 4 | |
176 | }, |
|
176 | }, | |
177 | { |
|
177 | { | |
178 | "cell_type": "code", |
|
178 | "cell_type": "code", | |
179 | "collapsed": false, |
|
179 | "collapsed": false, | |
180 | "input": [ |
|
180 | "input": [ | |
181 | "ls" |
|
181 | "ls" | |
182 | ], |
|
182 | ], | |
183 | "language": "python", |
|
183 | "language": "python", | |
184 | "metadata": {}, |
|
184 | "metadata": {}, | |
185 | "outputs": [ |
|
185 | "outputs": [ | |
186 | { |
|
186 | { | |
187 | "output_type": "stream", |
|
187 | "output_type": "stream", | |
188 | "stream": "stdout", |
|
188 | "stream": "stdout", | |
189 | "text": [ |
|
189 | "text": [ | |
190 | "01_notebook_introduction.ipynb Octave Magic.ipynb\r\n", |
|
190 | "01_notebook_introduction.ipynb Octave Magic.ipynb\r\n", | |
191 | "Animations Using clear_output.ipynb PyLab and Matplotlib.ipynb\r\n", |
|
191 | "Animations Using clear_output.ipynb PyLab and Matplotlib.ipynb\r\n", | |
192 | "Basic Output.ipynb R Magics.ipynb\r\n", |
|
192 | "Basic Output.ipynb R Magics.ipynb\r\n", | |
193 | "Custom Display Logic.ipynb Running Code.ipynb\r\n", |
|
193 | "Custom Display Logic.ipynb Running Code.ipynb\r\n", | |
194 | "Cython Magics.ipynb Script Magics.ipynb\r\n", |
|
194 | "Cython Magics.ipynb Script Magics.ipynb\r\n", | |
195 | "Data Publication API.ipynb SymPy Examples.ipynb\r\n", |
|
195 | "Data Publication API.ipynb SymPy Examples.ipynb\r\n", | |
196 | "Display System.ipynb Trapezoid Rule.ipynb\r\n", |
|
196 | "Display System.ipynb Trapezoid Rule.ipynb\r\n", | |
197 | "JS Progress Bar.ipynb Typesetting Math Using MathJax.ipynb\r\n", |
|
197 | "JS Progress Bar.ipynb Typesetting Math Using MathJax.ipynb\r\n", | |
198 | "Local Files.ipynb animation.m4v\r\n", |
|
198 | "Local Files.ipynb animation.m4v\r\n", | |
199 | "Markdown Cells.ipynb python-logo.svg\r\n", |
|
199 | "Markdown Cells.ipynb python-logo.svg\r\n", | |
200 | "Notebook Tour.ipynb\r\n" |
|
200 | "Notebook Tour.ipynb\r\n" | |
201 | ] |
|
201 | ] | |
202 | } |
|
202 | } | |
203 | ], |
|
203 | ], | |
204 | "prompt_number": 2 |
|
204 | "prompt_number": 2 | |
205 | }, |
|
205 | }, | |
206 | { |
|
206 | { | |
207 | "cell_type": "markdown", |
|
207 | "cell_type": "markdown", | |
208 | "metadata": {}, |
|
208 | "metadata": {}, | |
209 | "source": [ |
|
209 | "source": [ | |
210 | "Any command line program can be run using `!` with string interpolation from Python variables:" |
|
210 | "Any command line program can be run using `!` with string interpolation from Python variables:" | |
211 | ] |
|
211 | ] | |
212 | }, |
|
212 | }, | |
213 | { |
|
213 | { | |
214 | "cell_type": "code", |
|
214 | "cell_type": "code", | |
215 | "collapsed": false, |
|
215 | "collapsed": false, | |
216 | "input": [ |
|
216 | "input": [ | |
217 | "message = 'The IPython notebook is great!'\n", |
|
217 | "message = 'The IPython notebook is great!'\n", | |
218 | "# note: the echo command does not run on Windows, it's a unix command.\n", |
|
218 | "# note: the echo command does not run on Windows, it's a unix command.\n", | |
219 | "!echo $message" |
|
219 | "!echo $message" | |
220 | ], |
|
220 | ], | |
221 | "language": "python", |
|
221 | "language": "python", | |
222 | "metadata": {}, |
|
222 | "metadata": {}, | |
223 | "outputs": [] |
|
223 | "outputs": [] | |
224 | }, |
|
224 | }, | |
225 | { |
|
225 | { | |
226 | "cell_type": "markdown", |
|
226 | "cell_type": "markdown", | |
227 | "metadata": {}, |
|
227 | "metadata": {}, | |
228 | "source": [ |
|
228 | "source": [ | |
229 | "Tab completion works:" |
|
229 | "Tab completion works:" | |
230 | ] |
|
230 | ] | |
231 | }, |
|
231 | }, | |
232 | { |
|
232 | { | |
233 | "cell_type": "code", |
|
233 | "cell_type": "code", | |
234 | "collapsed": false, |
|
234 | "collapsed": false, | |
235 | "input": [ |
|
235 | "input": [ | |
236 | "import numpy\n", |
|
236 | "import numpy\n", | |
237 | "numpy.random." |
|
237 | "numpy.random." | |
238 | ], |
|
238 | ], | |
239 | "language": "python", |
|
239 | "language": "python", | |
240 | "metadata": {}, |
|
240 | "metadata": {}, | |
241 | "outputs": [], |
|
241 | "outputs": [], | |
242 | "prompt_number": 9 |
|
242 | "prompt_number": 9 | |
243 | }, |
|
243 | }, | |
244 | { |
|
244 | { | |
245 | "cell_type": "markdown", |
|
245 | "cell_type": "markdown", | |
246 | "metadata": {}, |
|
246 | "metadata": {}, | |
247 | "source": [ |
|
247 | "source": [ | |
248 | "Shift-Tab on selection, or after `(` brings up a tooltip with the docstring:" |
|
248 | "Shift-Tab on selection, or after `(` brings up a tooltip with the docstring:" | |
249 | ] |
|
249 | ] | |
250 | }, |
|
250 | }, | |
251 | { |
|
251 | { | |
252 | "cell_type": "code", |
|
252 | "cell_type": "code", | |
253 | "collapsed": false, |
|
253 | "collapsed": false, | |
254 | "input": [ |
|
254 | "input": [ | |
255 | "numpy.random.rand(" |
|
255 | "numpy.random.rand(" | |
256 | ], |
|
256 | ], | |
257 | "language": "python", |
|
257 | "language": "python", | |
258 | "metadata": {}, |
|
258 | "metadata": {}, | |
259 | "outputs": [] |
|
259 | "outputs": [] | |
260 | }, |
|
260 | }, | |
261 | { |
|
261 | { | |
262 | "cell_type": "markdown", |
|
262 | "cell_type": "markdown", | |
263 | "metadata": {}, |
|
263 | "metadata": {}, | |
264 | "source": [ |
|
264 | "source": [ | |
265 | "Adding `?` opens the docstring in the pager below:" |
|
265 | "Adding `?` opens the docstring in the pager below:" | |
266 | ] |
|
266 | ] | |
267 | }, |
|
267 | }, | |
268 | { |
|
268 | { | |
269 | "cell_type": "code", |
|
269 | "cell_type": "code", | |
270 | "collapsed": false, |
|
270 | "collapsed": false, | |
271 | "input": [ |
|
271 | "input": [ | |
272 | "magic?" |
|
272 | "magic?" | |
273 | ], |
|
273 | ], | |
274 | "language": "python", |
|
274 | "language": "python", | |
275 | "metadata": {}, |
|
275 | "metadata": {}, | |
276 | "outputs": [], |
|
276 | "outputs": [], | |
277 | "prompt_number": 8 |
|
277 | "prompt_number": 8 | |
278 | }, |
|
278 | }, | |
279 | { |
|
279 | { | |
280 | "cell_type": "markdown", |
|
280 | "cell_type": "markdown", | |
281 | "metadata": {}, |
|
281 | "metadata": {}, | |
282 | "source": [ |
|
282 | "source": [ | |
283 | "Exceptions are formatted nicely:" |
|
283 | "Exceptions are formatted nicely:" | |
284 | ] |
|
284 | ] | |
285 | }, |
|
285 | }, | |
286 | { |
|
286 | { | |
287 | "cell_type": "code", |
|
287 | "cell_type": "code", | |
288 | "collapsed": false, |
|
288 | "collapsed": false, | |
289 | "input": [ |
|
289 | "input": [ | |
290 | "x = 1\n", |
|
290 | "x = 1\n", | |
291 | "y = 4\n", |
|
291 | "y = 4\n", | |
292 | "z = y/(1-x)" |
|
292 | "z = y/(1-x)" | |
293 | ], |
|
293 | ], | |
294 | "language": "python", |
|
294 | "language": "python", | |
295 | "metadata": {}, |
|
295 | "metadata": {}, | |
296 | "outputs": [ |
|
296 | "outputs": [ | |
297 | { |
|
297 | { | |
298 | "ename": "ZeroDivisionError", |
|
298 | "ename": "ZeroDivisionError", | |
299 | "evalue": "integer division or modulo by zero", |
|
299 | "evalue": "integer division or modulo by zero", | |
300 | "output_type": "pyerr", |
|
300 | "output_type": "pyerr", | |
301 | "traceback": [ |
|
301 | "traceback": [ | |
302 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", |
|
302 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", | |
303 | "\u001b[0;32m<ipython-input-15-dc39888fd1d2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", |
|
303 | "\u001b[0;32m<ipython-input-15-dc39888fd1d2>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mz\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m/\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
304 | "\u001b[0;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" |
|
304 | "\u001b[0;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" | |
305 | ] |
|
305 | ] | |
306 | } |
|
306 | } | |
307 | ], |
|
307 | ], | |
308 | "prompt_number": 15 |
|
308 | "prompt_number": 15 | |
309 | }, |
|
309 | }, | |
310 | { |
|
310 | { | |
311 | "cell_type": "heading", |
|
311 | "cell_type": "heading", | |
312 | "level": 2, |
|
312 | "level": 2, | |
313 | "metadata": {}, |
|
313 | "metadata": {}, | |
314 | "source": [ |
|
314 | "source": [ | |
315 | "Working with external code" |
|
315 | "Working with external code" | |
316 | ] |
|
316 | ] | |
317 | }, |
|
317 | }, | |
318 | { |
|
318 | { | |
319 | "cell_type": "markdown", |
|
319 | "cell_type": "markdown", | |
320 | "metadata": {}, |
|
320 | "metadata": {}, | |
321 | "source": [ |
|
321 | "source": [ | |
322 | "There are a number of ways of getting external code into code cells." |
|
322 | "There are a number of ways of getting external code into code cells." | |
323 | ] |
|
323 | ] | |
324 | }, |
|
324 | }, | |
325 | { |
|
325 | { | |
326 | "cell_type": "markdown", |
|
326 | "cell_type": "markdown", | |
327 | "metadata": {}, |
|
327 | "metadata": {}, | |
328 | "source": [ |
|
328 | "source": [ | |
329 | "Pasting code with `>>>` prompts works as expected:" |
|
329 | "Pasting code with `>>>` prompts works as expected:" | |
330 | ] |
|
330 | ] | |
331 | }, |
|
331 | }, | |
332 | { |
|
332 | { | |
333 | "cell_type": "code", |
|
333 | "cell_type": "code", | |
334 | "collapsed": false, |
|
334 | "collapsed": false, | |
335 | "input": [ |
|
335 | "input": [ | |
336 | ">>> the_world_is_flat = 1\n", |
|
336 | ">>> the_world_is_flat = 1\n", | |
337 | ">>> if the_world_is_flat:\n", |
|
337 | ">>> if the_world_is_flat:\n", | |
338 | "... print(\"Be careful not to fall off!\")" |
|
338 | "... print(\"Be careful not to fall off!\")" | |
339 | ], |
|
339 | ], | |
340 | "language": "python", |
|
340 | "language": "python", | |
341 | "metadata": {}, |
|
341 | "metadata": {}, | |
342 | "outputs": [ |
|
342 | "outputs": [ | |
343 | { |
|
343 | { | |
344 | "output_type": "stream", |
|
344 | "output_type": "stream", | |
345 | "stream": "stdout", |
|
345 | "stream": "stdout", | |
346 | "text": [ |
|
346 | "text": [ | |
347 | "Be careful not to fall off!\n" |
|
347 | "Be careful not to fall off!\n" | |
348 | ] |
|
348 | ] | |
349 | } |
|
349 | } | |
350 | ], |
|
350 | ], | |
351 | "prompt_number": 1 |
|
351 | "prompt_number": 1 | |
352 | }, |
|
352 | }, | |
353 | { |
|
353 | { | |
354 | "cell_type": "markdown", |
|
354 | "cell_type": "markdown", | |
355 | "metadata": {}, |
|
355 | "metadata": {}, | |
356 | "source": [ |
|
356 | "source": [ | |
357 | "The `%load` magic lets you load code from URLs or local files:" |
|
357 | "The `%load` magic lets you load code from URLs or local files:" | |
358 | ] |
|
358 | ] | |
359 | }, |
|
359 | }, | |
360 | { |
|
360 | { | |
361 | "cell_type": "code", |
|
361 | "cell_type": "code", | |
362 | "collapsed": false, |
|
362 | "collapsed": false, | |
363 | "input": [ |
|
363 | "input": [ | |
364 | "%load?" |
|
364 | "%load?" | |
365 | ], |
|
365 | ], | |
366 | "language": "python", |
|
366 | "language": "python", | |
367 | "metadata": {}, |
|
367 | "metadata": {}, | |
368 | "outputs": [], |
|
368 | "outputs": [], | |
369 | "prompt_number": 14 |
|
369 | "prompt_number": 14 | |
370 | }, |
|
370 | }, | |
371 | { |
|
371 | { | |
372 | "cell_type": "code", |
|
372 | "cell_type": "code", | |
373 | "collapsed": false, |
|
373 | "collapsed": false, | |
374 | "input": [ |
|
374 | "input": [ | |
375 | "%matplotlib inline" |
|
375 | "%matplotlib inline" | |
376 | ], |
|
376 | ], | |
377 | "language": "python", |
|
377 | "language": "python", | |
378 | "metadata": {}, |
|
378 | "metadata": {}, | |
379 | "outputs": [], |
|
379 | "outputs": [], | |
380 | "prompt_number": 1 |
|
380 | "prompt_number": 1 | |
381 | }, |
|
381 | }, | |
382 | { |
|
382 | { | |
383 | "cell_type": "code", |
|
383 | "cell_type": "code", | |
384 | "collapsed": false, |
|
384 | "collapsed": false, | |
385 | "input": [ |
|
385 | "input": [ | |
386 | "%load http://matplotlib.org/mpl_examples/showcase/integral_demo.py" |
|
386 | "%load http://matplotlib.org/mpl_examples/showcase/integral_demo.py" | |
387 | ], |
|
387 | ], | |
388 | "language": "python", |
|
388 | "language": "python", | |
389 | "metadata": {}, |
|
389 | "metadata": {}, | |
390 | "outputs": [], |
|
390 | "outputs": [], | |
391 | "prompt_number": 2 |
|
391 | "prompt_number": 2 | |
392 | }, |
|
392 | }, | |
393 | { |
|
393 | { | |
394 | "cell_type": "code", |
|
394 | "cell_type": "code", | |
395 | "collapsed": false, |
|
395 | "collapsed": false, | |
396 | "input": [ |
|
396 | "input": [ | |
397 | "\"\"\"\n", |
|
397 | "\"\"\"\n", | |
398 | "Plot demonstrating the integral as the area under a curve.\n", |
|
398 | "Plot demonstrating the integral as the area under a curve.\n", | |
399 | "\n", |
|
399 | "\n", | |
400 | "Although this is a simple example, it demonstrates some important tweaks:\n", |
|
400 | "Although this is a simple example, it demonstrates some important tweaks:\n", | |
401 | "\n", |
|
401 | "\n", | |
402 | " * A simple line plot with custom color and line width.\n", |
|
402 | " * A simple line plot with custom color and line width.\n", | |
403 | " * A shaded region created using a Polygon patch.\n", |
|
403 | " * A shaded region created using a Polygon patch.\n", | |
404 | " * A text label with mathtext rendering.\n", |
|
404 | " * A text label with mathtext rendering.\n", | |
405 | " * figtext calls to label the x- and y-axes.\n", |
|
405 | " * figtext calls to label the x- and y-axes.\n", | |
406 | " * Use of axis spines to hide the top and right spines.\n", |
|
406 | " * Use of axis spines to hide the top and right spines.\n", | |
407 | " * Custom tick placement and labels.\n", |
|
407 | " * Custom tick placement and labels.\n", | |
408 | "\"\"\"\n", |
|
408 | "\"\"\"\n", | |
409 | "import numpy as np\n", |
|
409 | "import numpy as np\n", | |
410 | "import matplotlib.pyplot as plt\n", |
|
410 | "import matplotlib.pyplot as plt\n", | |
411 | "from matplotlib.patches import Polygon\n", |
|
411 | "from matplotlib.patches import Polygon\n", | |
412 | "\n", |
|
412 | "\n", | |
413 | "\n", |
|
413 | "\n", | |
414 | "def func(x):\n", |
|
414 | "def func(x):\n", | |
415 | " return (x - 3) * (x - 5) * (x - 7) + 85\n", |
|
415 | " return (x - 3) * (x - 5) * (x - 7) + 85\n", | |
416 | "\n", |
|
416 | "\n", | |
417 | "\n", |
|
417 | "\n", | |
418 | "a, b = 2, 9 # integral limits\n", |
|
418 | "a, b = 2, 9 # integral limits\n", | |
419 | "x = np.linspace(0, 10)\n", |
|
419 | "x = np.linspace(0, 10)\n", | |
420 | "y = func(x)\n", |
|
420 | "y = func(x)\n", | |
421 | "\n", |
|
421 | "\n", | |
422 | "fig, ax = plt.subplots()\n", |
|
422 | "fig, ax = plt.subplots()\n", | |
423 | "plt.plot(x, y, 'r', linewidth=2)\n", |
|
423 | "plt.plot(x, y, 'r', linewidth=2)\n", | |
424 | "plt.ylim(ymin=0)\n", |
|
424 | "plt.ylim(ymin=0)\n", | |
425 | "\n", |
|
425 | "\n", | |
426 | "# Make the shaded region\n", |
|
426 | "# Make the shaded region\n", | |
427 | "ix = np.linspace(a, b)\n", |
|
427 | "ix = np.linspace(a, b)\n", | |
428 | "iy = func(ix)\n", |
|
428 | "iy = func(ix)\n", | |
429 | "verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]\n", |
|
429 | "verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]\n", | |
430 | "poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')\n", |
|
430 | "poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')\n", | |
431 | "ax.add_patch(poly)\n", |
|
431 | "ax.add_patch(poly)\n", | |
432 | "\n", |
|
432 | "\n", | |
433 | "plt.text(0.5 * (a + b), 30, r\"$\\int_a^b f(x)\\mathrm{d}x$\",\n", |
|
433 | "plt.text(0.5 * (a + b), 30, r\"$\\int_a^b f(x)\\mathrm{d}x$\",\n", | |
434 | " horizontalalignment='center', fontsize=20)\n", |
|
434 | " horizontalalignment='center', fontsize=20)\n", | |
435 | "\n", |
|
435 | "\n", | |
436 | "plt.figtext(0.9, 0.05, '$x$')\n", |
|
436 | "plt.figtext(0.9, 0.05, '$x$')\n", | |
437 | "plt.figtext(0.1, 0.9, '$y$')\n", |
|
437 | "plt.figtext(0.1, 0.9, '$y$')\n", | |
438 | "\n", |
|
438 | "\n", | |
439 | "ax.spines['right'].set_visible(False)\n", |
|
439 | "ax.spines['right'].set_visible(False)\n", | |
440 | "ax.spines['top'].set_visible(False)\n", |
|
440 | "ax.spines['top'].set_visible(False)\n", | |
441 | "ax.xaxis.set_ticks_position('bottom')\n", |
|
441 | "ax.xaxis.set_ticks_position('bottom')\n", | |
442 | "\n", |
|
442 | "\n", | |
443 | "ax.set_xticks((a, b))\n", |
|
443 | "ax.set_xticks((a, b))\n", | |
444 | "ax.set_xticklabels(('$a$', '$b$'))\n", |
|
444 | "ax.set_xticklabels(('$a$', '$b$'))\n", | |
445 | "ax.set_yticks([])\n", |
|
445 | "ax.set_yticks([])\n", | |
446 | "\n", |
|
446 | "\n", | |
447 | "plt.show()\n" |
|
447 | "plt.show()\n" | |
448 | ], |
|
448 | ], | |
449 | "language": "python", |
|
449 | "language": "python", | |
450 | "metadata": {}, |
|
450 | "metadata": {}, | |
451 | "outputs": [ |
|
451 | "outputs": [ | |
452 | { |
|
452 | { | |
453 | "metadata": { |
|
453 | "metadata": { | |
454 | "png": { |
|
454 | "png": { | |
455 | "height": 401, |
|
455 | "height": 401, | |
456 | "width": 596 |
|
456 | "width": 596 | |
457 | } |
|
457 | } | |
458 | }, |
|
458 | }, | |
459 | "output_type": "display_data", |
|
459 | "output_type": "display_data", | |
460 | "png": "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\nu0ULZY4ebVMiAADy+/rrr4PbtWrVUmJioo1pAAAAIgclFSKC43//U2LfvpZZoHJlpc2eLcXE2BMK\nAIATeL1erVu3LrjfpEkTG9MAAABEFkoqhL+0NCX16CEjNTU4Mp1Opc+aJfMvf7ExGAAAVt9//708\nHk9wn5IKAACg8CipEN5MU4kPPyznli2WceaIEcq+7DKbQgEAULC8T/WTKKkAAACKgpIKYS32lVcU\ns3SpZea95RZ5+vWzKREAACe3evXq4LZhGDr//PNtTAMAABBZKKkQtlxffqn4Z56xzLIbN1b6xImS\nYdiUCgCAgvn9fq1duza4X7VqVVWoUMHGRAAAAJGFkgphyfjjDyX27i3D7w/OAmXKKH3OHImnJAEA\nwtDGjRuVnp4e3G/cuLGNaQAAACIPJRXCj8ejpLvvlmP/fss4Y+pUBerWtSkUAACn9u2331r2zzvv\nPJuSAAAARCZKKoSdhCeekOu77yyzzIED5evUyaZEAACc3po1ayz7jRo1sikJAABAZKKkQliJmTdP\nsbNmWWa+jh2VNXCgTYkAACic7074AQtXUgEAABQNJRXChnP9eiU89phl5q9dW+lTp0oO/q8KAAhf\nu3bt0p49e4L7LpdL5557ro2JwsfWrVt16aWXavv27SF7z0ceeUTDhw8P2fsBAIDiwb/8ERaMgweV\n2KOHDI8nODPj45U+d67McuVsTAYAwOmdeKtf7dq1FRMTY1Oa8LFmzRrdfPPNuv/++0Na2o0YMUKf\nf/65Bg4cKNM0S/S9AoGADh8+rB07duj777/Xp59+qszMzBJ9TwAAopXL7gCATFMJDz4o565dlnHG\nxInyn3++TaEAACi8aL/Vz+PxaMaMGVq4cKF+//13Va5cWddff70GDBigxJM8dffnn39W9+7d1bNn\nT3Xv3j2kecuUKaN58+apU6dO8ng8evHFF0vkfa677jr9+OOPCgQClvk333yjGjVqlMh7AgAQzbiS\nCraLef11xSxfbpll9e0rb5cuNiUCAKBoTnyyXzQtmp6amqquXbtq1KhR6tKli7799ls9+OCDmj17\n9knLp0OHDunuu+9WgwYNNGjQoBAnzlGtWjVNmDBBb775pl5//fUSeY9bbrlFvXv3tlwlZhhGibwX\nAAClASUVbOXYvl0JQ4daZtktWihzxAibEgEAUDQZGRnasmWLZRZNV1INGjRIa9euVfv27fXAAw9o\n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\nACFkA6eYdyQ3AAAAAElFTkSuQmCC\n", |
|
460 | "png": "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\nu0ULZY4ebVMiAADy+/rrr4PbtWrVUmJioo1pAAAAIgclFSKC43//U2LfvpZZoHJlpc2eLcXE2BMK\nAIATeL1erVu3LrjfpEkTG9MAAABEFkoqhL+0NCX16CEjNTU4Mp1Opc+aJfMvf7ExGAAAVt9//708\nHk9wn5IKAACg8CipEN5MU4kPPyznli2WceaIEcq+7DKbQgEAULC8T/WTKKkAAACKgpIKYS32lVcU\ns3SpZea95RZ5+vWzKREAACe3evXq4LZhGDr//PNtTAMAABBZKKkQtlxffqn4Z56xzLIbN1b6xImS\nYdiUCgCAgvn9fq1duza4X7VqVVWoUMHGRAAAAJGFkgphyfjjDyX27i3D7w/OAmXKKH3OHImnJAEA\nwtDGjRuVnp4e3G/cuLGNaQAAACIPJRXCj8ejpLvvlmP/fss4Y+pUBerWtSkUAACn9u2331r2zzvv\nPJuSAAAARCZKKoSdhCeekOu77yyzzIED5evUyaZEAACc3po1ayz7jRo1sikJAABAZKKkQliJmTdP\nsbNmWWa+jh2VNXCgTYkAACic7074AQtXUgEAABQNJRXChnP9eiU89phl5q9dW+lTp0oO/q8KAAhf\nu3bt0p49e4L7LpdL5557ro2JwsfWrVt16aWXavv27SF7z0ceeUTDhw8P2fsBAIDiwb/8ERaMgweV\n2KOHDI8nODPj45U+d67McuVsTAYAwOmdeKtf7dq1FRMTY1Oa8LFmzRrdfPPNuv/++0Na2o0YMUKf\nf/65Bg4cKNM0S/S9AoGADh8+rB07duj777/Xp59+qszMzBJ9TwAAopXL7gCATFMJDz4o565dlnHG\nxInyn3++TaEAACi8aL/Vz+PxaMaMGVq4cKF+//13Va5cWddff70GDBigxJM8dffnn39W9+7d1bNn\nT3Xv3j2kecuUKaN58+apU6dO8ng8evHFF0vkfa677jr9+OOPCgQClvk333yjGjVqlMh7AgAQzbiS\nCraLef11xSxfbpll9e0rb5cuNiUCAKBoTnyyXzQtmp6amqquXbtq1KhR6tKli7799ls9+OCDmj17\n9knLp0OHDunuu+9WgwYNNGjQoBAnzlGtWjVNmDBBb775pl5//fUSeY9bbrlFvXv3tlwlZhhGibwX\nAAClASUVbOXYvl0JQ4daZtktWihzxAibEgEAUDQZGRnasmWLZRZNV1INGjRIa9euVfv27fXAAw9o\n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\nACFkA6eYdyQ3AAAAAElFTkSuQmCC\n", | |
461 | "text": [ |
|
461 | "text": [ | |
462 | "<matplotlib.figure.Figure at 0x1078d7e10>" |
|
462 | "<matplotlib.figure.Figure at 0x1078d7e10>" | |
463 | ] |
|
463 | ] | |
464 | } |
|
464 | } | |
465 | ], |
|
465 | ], | |
466 | "prompt_number": 3 |
|
466 | "prompt_number": 3 | |
467 | } |
|
467 | } | |
468 | ], |
|
468 | ], | |
469 | "metadata": {} |
|
469 | "metadata": {} | |
470 | } |
|
470 | } | |
471 | ] |
|
471 | ] | |
472 | } No newline at end of file |
|
472 | } |
General Comments 0
You need to be logged in to leave comments.
Login now