Skip to content

Commit 6a6286a

Browse files
committed
fix for chromium renderer on linux systems (issue plotly#2348)
1 parent 24cda54 commit 6a6286a

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

packages/python/plotly/plotly/io/_base_renderers.py

+3
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,9 @@ def open_html_in_browser(html, using=None, new=0, autoraise=True):
669669
if isinstance(html, six.string_types):
670670
html = html.encode("utf8")
671671

672+
if isinstance(using, tuple):
673+
using = [i for i in webbrowser._browsers.keys() if any(j in i for j in using)][0]
674+
672675
class OneShotRequestHandler(BaseHTTPRequestHandler):
673676
def do_GET(self):
674677
self.send_response(200)

packages/python/plotly/plotly/io/_renderers.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -437,9 +437,9 @@ def show(fig, renderer=None, validate=True, **kwargs):
437437

438438
# External
439439
renderers["browser"] = BrowserRenderer(config=config)
440-
renderers["firefox"] = BrowserRenderer(config=config, using="firefox")
441-
renderers["chrome"] = BrowserRenderer(config=config, using="chrome")
442-
renderers["chromium"] = BrowserRenderer(config=config, using="chromium")
440+
renderers["firefox"] = BrowserRenderer(config=config, using=("firefox"))
441+
renderers["chrome"] = BrowserRenderer(config=config, using=("chrome", "google-chrome"))
442+
renderers["chromium"] = BrowserRenderer(config=config, using=("chromium", "chromium-browser"))
443443
renderers["iframe"] = IFrameRenderer(config=config, include_plotlyjs=True)
444444
renderers["iframe_connected"] = IFrameRenderer(config=config, include_plotlyjs="cdn")
445445
renderers["sphinx_gallery"] = SphinxGalleryHtmlRenderer()

packages/python/plotly/plotly/tests/test_io/test_renderers.py

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import pytest
88
import requests
99
import numpy as np
10+
import webbrowser
1011

1112
import plotly.graph_objs as go
1213
import plotly.io as pio
@@ -224,6 +225,8 @@ def test_notebook_connected_show(fig1, name, connected):
224225
def test_browser_renderer_show(fig1, renderer):
225226
pio.renderers.default = renderer
226227
renderer_obj = pio.renderers[renderer]
228+
# scan through webbrowser._browsers.keys() and assign the browser name registered with os
229+
renderer_obj.using = [i for i in webbrowser._browsers.keys() if renderer in i][0]
227230

228231
# Setup mocks
229232
mock_get = MagicMock(name="test get")

0 commit comments

Comments
 (0)