Show More
@@ -17,7 +17,7 b' Authors:' | |||||
17 | # Imports |
|
17 | # Imports | |
18 | #----------------------------------------------------------------------------- |
|
18 | #----------------------------------------------------------------------------- | |
19 |
|
19 | |||
20 |
from |
|
20 | from io import BytesIO | |
21 | from base64 import encodestring |
|
21 | from base64 import encodestring | |
22 | import os |
|
22 | import os | |
23 | import tempfile |
|
23 | import tempfile | |
@@ -27,6 +27,7 b' import subprocess' | |||||
27 | from IPython.utils.process import find_cmd, FindCmdError |
|
27 | from IPython.utils.process import find_cmd, FindCmdError | |
28 | from IPython.config.configurable import SingletonConfigurable |
|
28 | from IPython.config.configurable import SingletonConfigurable | |
29 | from IPython.utils.traitlets import Instance, List, CBool, CUnicode |
|
29 | from IPython.utils.traitlets import Instance, List, CBool, CUnicode | |
|
30 | from IPython.utils.py3compat import bytes_to_str | |||
30 |
|
31 | |||
31 | #----------------------------------------------------------------------------- |
|
32 | #----------------------------------------------------------------------------- | |
32 | # Tools |
|
33 | # Tools | |
@@ -111,7 +112,7 b' def latex_to_png_mpl(s, wrap):' | |||||
111 | if wrap: |
|
112 | if wrap: | |
112 | s = '${0}$'.format(s) |
|
113 | s = '${0}$'.format(s) | |
113 | mt = mathtext.MathTextParser('bitmap') |
|
114 | mt = mathtext.MathTextParser('bitmap') | |
114 |
f = |
|
115 | f = BytesIO() | |
115 | mt.to_png(f, s, fontsize=12) |
|
116 | mt.to_png(f, s, fontsize=12) | |
116 | return f.getvalue() |
|
117 | return f.getvalue() | |
117 |
|
118 | |||
@@ -140,7 +141,7 b' def latex_to_png_dvipng(s, wrap):' | |||||
140 | "-bg", "transparent", "-o", outfile, dvifile], cwd=workdir, |
|
141 | "-bg", "transparent", "-o", outfile, dvifile], cwd=workdir, | |
141 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
|
142 | stdout=subprocess.PIPE, stderr=subprocess.PIPE) | |
142 |
|
143 | |||
143 | with open(outfile) as f: |
|
144 | with open(outfile, "rb") as f: | |
144 | bin_data = f.read() |
|
145 | bin_data = f.read() | |
145 | finally: |
|
146 | finally: | |
146 | shutil.rmtree(workdir) |
|
147 | shutil.rmtree(workdir) | |
@@ -197,7 +198,7 b" def latex_to_html(s, alt='image'):" | |||||
197 | alt : str |
|
198 | alt : str | |
198 | The alt text to use for the HTML. |
|
199 | The alt text to use for the HTML. | |
199 | """ |
|
200 | """ | |
200 | base64_data = latex_to_png(s, encode=True) |
|
201 | base64_data = bytes_to_str(latex_to_png(s, encode=True), 'ascii') | |
201 | if base64_data: |
|
202 | if base64_data: | |
202 | return _data_uri_template_png % (base64_data, alt) |
|
203 | return _data_uri_template_png % (base64_data, alt) | |
203 |
|
204 |
@@ -11,7 +11,7 b'' | |||||
11 | import nose.tools as nt |
|
11 | import nose.tools as nt | |
12 |
|
12 | |||
13 | from IPython.lib import latextools |
|
13 | from IPython.lib import latextools | |
14 | from IPython.testing.decorators import onlyif_cmds_exist |
|
14 | from IPython.testing.decorators import onlyif_cmds_exist, skipif_not_matplotlib | |
15 | from IPython.testing.tools import monkeypatch |
|
15 | from IPython.testing.tools import monkeypatch | |
16 | from IPython.utils.process import FindCmdError |
|
16 | from IPython.utils.process import FindCmdError | |
17 |
|
17 | |||
@@ -49,6 +49,26 b' def test_latex_to_png_dvipng_runs():' | |||||
49 | with monkeypatch(latextools, "kpsewhich", mock_kpsewhich): |
|
49 | with monkeypatch(latextools, "kpsewhich", mock_kpsewhich): | |
50 | yield (latextools.latex_to_png_dvipng, s, wrap) |
|
50 | yield (latextools.latex_to_png_dvipng, s, wrap) | |
51 |
|
51 | |||
|
52 | @skipif_not_matplotlib | |||
|
53 | def test_latex_to_png_mpl_runs(): | |||
|
54 | """ | |||
|
55 | Test that latex_to_png_mpl just runs without error. | |||
|
56 | """ | |||
|
57 | def mock_kpsewhich(filename): | |||
|
58 | nt.assert_equals(filename, "breqn.sty") | |||
|
59 | return None | |||
|
60 | ||||
|
61 | for (s, wrap) in [("$x^2$", False), ("x^2", True)]: | |||
|
62 | yield (latextools.latex_to_png_mpl, s, wrap) | |||
|
63 | ||||
|
64 | with monkeypatch(latextools, "kpsewhich", mock_kpsewhich): | |||
|
65 | yield (latextools.latex_to_png_mpl, s, wrap) | |||
|
66 | ||||
|
67 | @skipif_not_matplotlib | |||
|
68 | def test_latex_to_html(): | |||
|
69 | img = latextools.latex_to_html("$x^2$") | |||
|
70 | nt.assert_in("data:image/png;base64,iVBOR", img) | |||
|
71 | ||||
52 |
|
72 | |||
53 | def test_genelatex_no_wrap(): |
|
73 | def test_genelatex_no_wrap(): | |
54 | """ |
|
74 | """ |
General Comments 0
You need to be logged in to leave comments.
Login now