##// END OF EJS Templates
Make prompt numbers notebook more specific
Jessica B. Hamrick -
Show More
@@ -1,204 +1,81 b''
1 1 {
2 2 "metadata": {
3 3 "name": "notebook2"
4 4 },
5 5 "nbformat": 3,
6 6 "nbformat_minor": 0,
7 7 "worksheets": [
8 8 {
9 9 "cells": [
10 10 {
11 "cell_type": "heading",
12 "level": 1,
13 "metadata": {},
14 "source": [
15 "NumPy and Matplotlib examples"
16 ]
17 },
18 {
19 "cell_type": "markdown",
20 "metadata": {},
21 "source": [
22 "First import NumPy and Matplotlib:"
23 ]
24 },
25 {
26 "cell_type": "code",
27 "collapsed": false,
28 "input": [
29 "%pylab inline"
30 ],
31 "language": "python",
32 "metadata": {},
33 "outputs": [
34 {
35 "output_type": "stream",
36 "stream": "stdout",
37 "text": [
38 "\n",
39 "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.kernel.zmq.pylab.backend_inline].\n",
40 "For more information, type 'help(pylab)'.\n"
41 ]
42 }
43 ],
44 "prompt_number": 1
45 },
46 {
47 11 "cell_type": "code",
48 12 "collapsed": false,
49 13 "input": [
50 14 "import numpy as np"
51 15 ],
52 16 "language": "python",
53 17 "metadata": {},
54 18 "outputs": [],
55 19 "prompt_number": 2
56 20 },
57 21 {
58 "cell_type": "markdown",
59 "metadata": {},
60 "source": [
61 "Now we show some very basic examples of how they can be used."
62 ]
63 },
64 {
65 "cell_type": "code",
66 "collapsed": false,
67 "input": [
68 "a = np.random.uniform(size=(100,100))"
69 ],
70 "language": "python",
71 "metadata": {},
72 "outputs": [],
73 "prompt_number": 6
74 },
75 {
76 "cell_type": "code",
77 "collapsed": false,
78 "input": [
79 "a.shape"
80 ],
81 "language": "python",
82 "metadata": {},
83 "outputs": [
84 {
85 "metadata": {},
86 "output_type": "pyout",
87 "prompt_number": 7,
88 "text": [
89 "(100, 100)"
90 ]
91 }
92 ],
93 "prompt_number": 7
94 },
95 {
96 "cell_type": "code",
97 "collapsed": false,
98 "input": [
99 "evs = np.linalg.eigvals(a)"
100 ],
101 "language": "python",
102 "metadata": {},
103 "outputs": [],
104 "prompt_number": 8
105 },
106 {
107 22 "cell_type": "code",
108 23 "collapsed": false,
109 24 "input": [
25 "evs = np.zeros(100)",
110 26 "evs.shape"
111 27 ],
112 28 "language": "python",
113 29 "metadata": {},
114 30 "outputs": [
115 31 {
116 32 "metadata": {},
117 33 "output_type": "pyout",
118 34 "prompt_number": 10,
119 35 "text": [
120 36 "(100,)"
121 37 ]
122 38 }
123 39 ],
124 40 "prompt_number": 10
125 41 },
126 42 {
127 "cell_type": "markdown",
128 "metadata": {},
129 "source": [
130 "Here is a cell that has both text and PNG output:"
131 ]
132 },
133 {
134 "cell_type": "code",
135 "collapsed": false,
136 "input": [
137 "hist(evs.real)"
138 ],
139 "language": "python",
140 "metadata": {},
141 "outputs": [
142 {
143 "metadata": {},
144 "output_type": "pyout",
145 "prompt_number": 14,
146 "text": [
147 "(array([95, 4, 0, 0, 0, 0, 0, 0, 0, 1]),\n",
148 " array([ -2.93566063, 2.35937011, 7.65440086, 12.9494316 ,\n",
149 " 18.24446235, 23.53949309, 28.83452384, 34.12955458,\n",
150 " 39.42458533, 44.71961607, 50.01464682]),\n",
151 " <a list of 10 Patch objects>)"
152 ]
153 },
154 {
155 "metadata": {},
156 "output_type": "display_data",
157 "png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD9CAYAAAC2l2x5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEhdJREFUeJzt3X1olfX/x/HXtVbT8CZDmsK6KmrubEu3U2xnZOpxLBnG\nOqsIE7RoE3QRZkT/yEAjcIh/LIs6i/BEGSU1CkxT0+pkFp1zMmsxZ5uUTIXoxm95lmdlef3+8Nep\ndbtz7exs16fnAw7sXNs5n/c14nmurl3naDmO4wgAYJy8sR4AADA6CDwAGIrAA4ChCDwAGIrAA4Ch\nCDwAGOofA9/U1KTCwkLNnj07vS2ZTCoUCsm2bTU2NmpgYCD9vccee0zFxcUqKyvTgQMHRm9qAMC/\n+sfA33PPPdq9e/eQbeFwWLZtq6+vT0VFRero6JAkffXVV3ryySf15ptvKhwOa/Xq1aM3NQDgX/1j\n4OfNm6dp06YN2RaPx9Xc3KyCggI1NTUpFotJkmKxmOrr62XbthYsWCDHcZRMJkdvcgDAP8r4HHwi\nkZDP55Mk+Xw+xeNxSecDX1pamv65kpKS9PcAALmXn+kDMvlkA8uyhrUNAPDvMv1kmYyP4KuqqtTT\n0yNJ6unpUVVVlSQpEAjo8OHD6Z87cuRI+nt/NaRXb+vWrRvzGZh/7Odgfu/dvDy747j7yLCMAx8I\nBBSJRJRKpRSJRFRTUyNJqq6u1p49e9Tf369oNKq8vDxNnjzZ1VAAgJH7x8AvXbpUN9xwg3p7e3X5\n5ZfrmWeeUUtLi/r7+1VSUqKTJ09q1apVkqTCwkK1tLSotrZW9957rzZv3pyTHQAA/DXLcXvs73ZB\ny3L9vxvjQTQaVTAYHOsxXGP+scX8Y8fLs0vu2kngAcAD3LSTjyoAAEMReAAwFIEHAEMReAAwFIEH\nAEP9ZwM/Zcqlsixr1G9Tplw61rsK4D/qP3uZ5PnPxMnFHONjfwF4G5dJAgDSCDwAGIrAA4ChCDwA\nGIrAA4ChCDwAGIrAA4ChCDwAGIrAA4ChCDwAGIrAA4ChCDwAGIrAA4ChCDwAGIrAA4ChCDwAGIrA\nA4ChCDwAGIrAA4ChCDwAGIrAA4ChCDwAGIrAA4ChCDwAGIrAA4ChCDwAGIrAA4ChXAf+6aef1g03\n3KDrr79ea9askSQlk0mFQiHZtq3GxkYNDAxkbVAAQGZcBf7UqVPasGGD9u7dq0Qiod7eXu3Zs0fh\ncFi2bauvr09FRUXq6OjI9rwAgGFyFfiJEyfKcRx9//33SqVSOnPmjC655BLF43E1NzeroKBATU1N\nisVi2Z4XADBMrgMfDod15ZVXasaMGZo7d64CgYASiYR8Pp8kyefzKR6PZ3VYAMDw5bt50Ndff62W\nlhYdPnxY06ZN0x133KEdO3bIcZxhPX79+vXpr4PBoILBoJsxAMBY0WhU0Wh0RM9hOcOt8u/s3LlT\nW7du1bZt2yRJ4XBYx44d09GjR9Xa2iq/36+DBw+qra1NnZ2dQxe0rGG/EIwmy7Ik5WKO8bG/ALzN\nTTtdnaKZN2+ePvzwQ506dUo//vijdu3apUWLFikQCCgSiSiVSikSiaimpsbN0wMAssBV4KdMmaLW\n1lbdeuutuvHGG1VRUaGFCxeqpaVF/f39Kikp0cmTJ7Vq1apszwsAGCZXp2hGtCCnaAAgYzk7RQMA\nGP8IPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEI\nPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAY\nisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYisADgKEIPAAYynXgf/jhB919992a\nNWuWysrKFIvFlEwmFQqFZNu2GhsbNTAwkM1ZAQAZcB34devWybZtdXV1qaurSz6fT+FwWLZtq6+v\nT0VFRero6MjmrACADLgO/L59+7R27VpNmDBB+fn5mjp1quLxuJqbm1VQUKCmpibFYrFszgoAyICr\nwJ84cUKDg4NqaWlRIBDQxo0blUqllEgk5PP5JEk+n0/xeDyrwwIAhi/fzYMGBwfV29urTZs2qa6u\nTitXrtRLL70kx3GG9fj169envw4GgwoGg27GAABjRaNRRaPRET2H5Qy3yn9QWlqqnp4eSdKuXbv0\n3HPP6aefflJra6v8fr8OHjyotrY2dXZ2Dl3Qsob9QjCaLMuSlIs5xsf+AvA2N+10fQ6+uLhYsVhM\n586d086dO1VXV6dAIKBIJKJUKqVIJKKamhq3Tw8AGCHXR/C9vb266667NDg4qLq6Oj388MM6d+6c\nli1bpkOHDum6667T888/r0mTJg1dkCN4AMiYm3a6DrxbBB4AMpfTUzQAgPGNwAOAoQg8ABiKwAOA\n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\n",
158 "text": [
159 "<matplotlib.figure.Figure at 0x108c8f1d0>"
160 ]
161 }
162 ],
163 "prompt_number": 14
164 },
165 {
166 43 "cell_type": "code",
167 44 "collapsed": false,
168 45 "input": [],
169 46 "language": "python",
170 47 "metadata": {},
171 48 "outputs": []
172 49 },
173 50 {
174 51 "cell_type": "code",
175 52 "collapsed": false,
176 53 "input": [],
177 54 "language": "python",
178 55 "metadata": {},
179 56 "outputs": [],
180 57 "prompt_number": null
181 58 },
182 59 {
183 60 "cell_type": "code",
184 61 "collapsed": false,
185 62 "input": [],
186 63 "language": "python",
187 64 "metadata": {},
188 65 "outputs": [],
189 66 "prompt_number": "*"
190 67 },
191 68 {
192 69 "cell_type": "code",
193 70 "collapsed": false,
194 71 "input": [],
195 72 "language": "python",
196 73 "metadata": {},
197 74 "outputs": [],
198 75 "prompt_number": 0
199 76 }
200 77 ],
201 78 "metadata": {}
202 79 }
203 80 ]
204 81 } No newline at end of file
@@ -1,77 +1,77 b''
1 1 """Tests for HTMLExporter"""
2 2
3 3 #-----------------------------------------------------------------------------
4 4 # Copyright (c) 2013, the IPython Development Team.
5 5 #
6 6 # Distributed under the terms of the Modified BSD License.
7 7 #
8 8 # The full license is in the file COPYING.txt, distributed with this software.
9 9 #-----------------------------------------------------------------------------
10 10
11 11 #-----------------------------------------------------------------------------
12 12 # Imports
13 13 #-----------------------------------------------------------------------------
14 14
15 15 from .base import ExportersTestsBase
16 16 from ..html import HTMLExporter
17 17 from IPython.testing.decorators import onlyif_any_cmd_exists
18 18 import re
19 19
20 20 #-----------------------------------------------------------------------------
21 21 # Class
22 22 #-----------------------------------------------------------------------------
23 23
24 24 class TestHTMLExporter(ExportersTestsBase):
25 25 """Tests for HTMLExporter"""
26 26
27 27 exporter_class = HTMLExporter
28 28 should_include_raw = ['html']
29 29
30 30 def test_constructor(self):
31 31 """
32 32 Can a HTMLExporter be constructed?
33 33 """
34 34 HTMLExporter()
35 35
36 36
37 37 @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc')
38 38 def test_export(self):
39 39 """
40 40 Can a HTMLExporter export something?
41 41 """
42 42 (output, resources) = HTMLExporter().from_filename(self._get_notebook())
43 43 assert len(output) > 0
44 44
45 45
46 46 @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc')
47 47 def test_export_basic(self):
48 48 """
49 49 Can a HTMLExporter export using the 'basic' template?
50 50 """
51 51 (output, resources) = HTMLExporter(template_file='basic').from_filename(self._get_notebook())
52 52 assert len(output) > 0
53 53
54 54
55 55 @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc')
56 56 def test_export_full(self):
57 57 """
58 58 Can a HTMLExporter export using the 'full' template?
59 59 """
60 60 (output, resources) = HTMLExporter(template_file='full').from_filename(self._get_notebook())
61 61 assert len(output) > 0
62 62
63 63 @onlyif_any_cmd_exists('nodejs', 'node', 'pandoc')
64 64 def test_prompt_number(self):
65 65 """
66 66 Does HTMLExporter properly format input and output prompts?
67 67 """
68 68 (output, resources) = HTMLExporter(template_file='full').from_filename(
69 69 self._get_notebook(nb_name="prompt_numbers.ipynb"))
70 70 in_regex = r"In&nbsp;\[(.*)\]:"
71 71 out_regex = r"Out\[(.*)\]:"
72 72
73 ins = ["1", "2", "6", "7", "8", "10", "14", "&nbsp;", "&nbsp;", "*", "0"]
74 outs = ["7", "10", "14"]
73 ins = ["2", "10", "&nbsp;", "&nbsp;", "*", "0"]
74 outs = ["10"]
75 75
76 76 assert re.findall(in_regex, output) == ins
77 77 assert re.findall(out_regex, output) == outs
@@ -1,118 +1,118 b''
1 1 """Tests for Latex exporter"""
2 2
3 3 # Copyright (c) IPython Development Team.
4 4 # Distributed under the terms of the Modified BSD License.
5 5
6 6 import os.path
7 7 import textwrap
8 8 import re
9 9
10 10 from .base import ExportersTestsBase
11 11 from ..latex import LatexExporter
12 12 from IPython.nbformat import current
13 13 from IPython.testing.decorators import onlyif_cmds_exist
14 14 from IPython.utils.tempdir import TemporaryDirectory
15 15
16 16
17 17 class TestLatexExporter(ExportersTestsBase):
18 18 """Contains test functions for latex.py"""
19 19
20 20 exporter_class = LatexExporter
21 21 should_include_raw = ['latex']
22 22
23 23 def test_constructor(self):
24 24 """
25 25 Can a LatexExporter be constructed?
26 26 """
27 27 LatexExporter()
28 28
29 29
30 30 @onlyif_cmds_exist('pandoc')
31 31 def test_export(self):
32 32 """
33 33 Can a LatexExporter export something?
34 34 """
35 35 (output, resources) = LatexExporter().from_filename(self._get_notebook())
36 36 assert len(output) > 0
37 37
38 38
39 39 @onlyif_cmds_exist('pandoc')
40 40 def test_export_book(self):
41 41 """
42 42 Can a LatexExporter export using 'report' template?
43 43 """
44 44 (output, resources) = LatexExporter(template_file='report').from_filename(self._get_notebook())
45 45 assert len(output) > 0
46 46
47 47
48 48 @onlyif_cmds_exist('pandoc')
49 49 def test_export_basic(self):
50 50 """
51 51 Can a LatexExporter export using 'article' template?
52 52 """
53 53 (output, resources) = LatexExporter(template_file='article').from_filename(self._get_notebook())
54 54 assert len(output) > 0
55 55
56 56
57 57 @onlyif_cmds_exist('pandoc')
58 58 def test_export_article(self):
59 59 """
60 60 Can a LatexExporter export using 'article' template?
61 61 """
62 62 (output, resources) = LatexExporter(template_file='article').from_filename(self._get_notebook())
63 63 assert len(output) > 0
64 64
65 65 @onlyif_cmds_exist('pandoc')
66 66 def test_very_long_cells(self):
67 67 """
68 68 Torture test that long cells do not cause issues
69 69 """
70 70 lorem_ipsum_text = textwrap.dedent("""\
71 71 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec
72 72 dignissim, ipsum non facilisis tempus, dui felis tincidunt metus,
73 73 nec pulvinar neque odio eget risus. Nulla nisi lectus, cursus
74 74 suscipit interdum at, ultrices sit amet orci. Mauris facilisis
75 75 imperdiet elit, vitae scelerisque ipsum dignissim non. Integer
76 76 consequat malesuada neque sit amet pulvinar. Curabitur pretium
77 77 ut turpis eget aliquet. Maecenas sagittis lacus sed lectus
78 78 volutpat, eu adipiscing purus pulvinar. Maecenas consequat
79 79 luctus urna, eget cursus quam mollis a. Aliquam vitae ornare
80 80 erat, non hendrerit urna. Sed eu diam nec massa egestas pharetra
81 81 at nec tellus. Fusce feugiat lacus quis urna sollicitudin volutpat.
82 82 Quisque at sapien non nibh feugiat tempus ac ultricies purus.
83 83 """)
84 84 lorem_ipsum_text = lorem_ipsum_text.replace("\n"," ") + "\n\n"
85 85 large_lorem_ipsum_text = "".join([lorem_ipsum_text]*3000)
86 86
87 87 notebook_name = "lorem_ipsum_long.ipynb"
88 88 nb = current.new_notebook(
89 89 worksheets=[
90 90 current.new_worksheet(cells=[
91 91 current.new_text_cell('markdown',source=large_lorem_ipsum_text)
92 92 ])
93 93 ]
94 94 )
95 95
96 96 with TemporaryDirectory() as td:
97 97 nbfile = os.path.join(td, notebook_name)
98 98 with open(nbfile, 'w') as f:
99 99 current.write(nb, f, 'ipynb')
100 100
101 101 (output, resources) = LatexExporter(template_file='article').from_filename(nbfile)
102 102 assert len(output) > 0
103 103
104 104 @onlyif_cmds_exist('pandoc')
105 105 def test_prompt_number_color(self):
106 106 """
107 107 Does LatexExporter properly format input and output prompts in color?
108 108 """
109 109 (output, resources) = LatexExporter().from_filename(
110 110 self._get_notebook(nb_name="prompt_numbers.ipynb"))
111 111 in_regex = r"In \[\{\\color\{incolor\}(.*)\}\]:"
112 112 out_regex = r"Out\[\{\\color\{outcolor\}(.*)\}\]:"
113 113
114 ins = ["1", "2", "6", "7", "8", "10", "14", " ", " ", "*", "0"]
115 outs = ["7", "10", "14"]
114 ins = ["2", "10", " ", " ", "*", "0"]
115 outs = ["10"]
116 116
117 117 assert re.findall(in_regex, output) == ins
118 118 assert re.findall(out_regex, output) == outs
General Comments 0
You need to be logged in to leave comments. Login now