Commit f3fcf034 authored by Michael Droettboom's avatar Michael Droettboom Committed by GitHub

Merge pull request #323 from mdboom/fix-matplotlib

Fix matplotlib wasm backend after undefined attribute behavior changed
parents 8da4b1f5 2f3a727e
......@@ -90,21 +90,24 @@ class FigureCanvasWasm(backend_agg.FigureCanvasAgg):
This is typically 2 on a HiDPI ("Retina") display, and 1 otherwise.
"""
backing_store = (
context.backingStorePixelRatio or
context.webkitBackingStorePixel or
context.mozBackingStorePixelRatio or
context.msBackingStorePixelRatio or
context.oBackingStorePixelRatio or
context.backendStorePixelRatio or
getattr(context, 'backingStorePixelRatio', 0) or
getattr(context, 'webkitBackingStorePixel', 0) or
getattr(context, 'mozBackingStorePixelRatio', 0) or
getattr(context, 'msBackingStorePixelRatio', 0) or
getattr(context, 'oBackingStorePixelRatio', 0) or
getattr(context, 'backendStorePixelRatio', 0) or
1
)
return (window.devicePixelRatio or 1) / backing_store
return (getattr(window, 'devicePixelRatio', 0) or 1) / backing_store
def create_root_element(self):
# Designed to be overridden by subclasses for use in contexts other
# than iodide.
from js import iodide
return iodide.output.element('div')
if iodide is not None:
return iodide.output.element('div')
else:
return document.createElement('div')
def show(self):
# If we've already shown this canvas elsewhere, don't create a new one,
......
def test_matplotlib(selenium):
def test_matplotlib(selenium_standalone):
selenium = selenium_standalone
selenium.load_package("matplotlib")
selenium.run("from matplotlib import pyplot as plt")
selenium.run("plt.figure()")
selenium.run("x = plt.plot([1,2,3])")
selenium.run("plt.plot([1,2,3])")
selenium.run("plt.show()")
def test_svg(selenium):
......@@ -26,5 +28,3 @@ def test_pdf(selenium):
selenium.run("import io")
selenium.run("fd = io.BytesIO()")
selenium.run("plt.savefig(fd, format='pdf')")
content = selenium.run("fd.getvalue()")
assert len(content) == 5559
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment