mirror of
https://github.com/pyecharts/pyecharts.git
synced 2026-02-01 17:46:01 +00:00
Add: render supports **kwargs params (#1299)
* Add: render supports **kwargs params * Add: example * Add: page notebook category
This commit is contained in:
parent
6db7f72e36
commit
e65a91c3b7
@ -19,6 +19,34 @@ def bar_base() -> Bar:
|
||||
return c
|
||||
|
||||
|
||||
@C.funcs
|
||||
def bar_border_radius():
|
||||
c = (
|
||||
Bar()
|
||||
.add_xaxis(Faker.choose())
|
||||
.add_yaxis("商家A", Faker.values(), category_gap="60%")
|
||||
.set_series_opts(
|
||||
itemstyle_opts={
|
||||
"normal": {
|
||||
"color": JsCode(
|
||||
"""new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
|
||||
offset: 0,
|
||||
color: 'rgba(0, 244, 255, 1)'
|
||||
}, {
|
||||
offset: 1,
|
||||
color: 'rgba(0, 77, 167, 1)'
|
||||
}], false)"""
|
||||
),
|
||||
"barBorderRadius": [30, 30, 30, 30],
|
||||
"shadowColor": "rgb(0, 160, 221)",
|
||||
}
|
||||
}
|
||||
)
|
||||
.set_global_opts(title_opts=opts.TitleOpts(title="Bar-渐变圆柱"))
|
||||
)
|
||||
return c
|
||||
|
||||
|
||||
@C.funcs
|
||||
def bar_base_with_animation() -> Bar:
|
||||
c = (
|
||||
|
||||
@ -65,10 +65,11 @@ class Base:
|
||||
path: str = "render.html",
|
||||
template_name: str = "simple_chart.html",
|
||||
env: Optional[Environment] = None,
|
||||
**kwargs,
|
||||
) -> str:
|
||||
self._prepare_render()
|
||||
RenderEngine(env).render_chart_to_file(
|
||||
chart=self, path=path, template_name=template_name
|
||||
template_name=template_name, chart=self, path=path, **kwargs
|
||||
)
|
||||
return os.path.abspath(path)
|
||||
|
||||
@ -76,9 +77,12 @@ class Base:
|
||||
self,
|
||||
template_name: str = "simple_chart.html",
|
||||
env: Optional[Environment] = None,
|
||||
):
|
||||
**kwargs,
|
||||
) -> str:
|
||||
self._prepare_render()
|
||||
html = RenderEngine(env).render_chart_to_template(template_name, chart=self)
|
||||
html = RenderEngine(env).render_chart_to_template(
|
||||
template_name, chart=self, **kwargs
|
||||
)
|
||||
return html
|
||||
|
||||
def render_notebook(self):
|
||||
|
||||
@ -139,10 +139,11 @@ class Page:
|
||||
path: str = "render.html",
|
||||
template_name: str = "simple_page.html",
|
||||
env: types.Optional[Environment] = None,
|
||||
):
|
||||
**kwargs,
|
||||
) -> str:
|
||||
self._prepare_render()
|
||||
RenderEngine(env).render_chart_to_file(
|
||||
template_name=template_name, chart=self, path=path
|
||||
template_name=template_name, chart=self, path=path, **kwargs
|
||||
)
|
||||
return os.path.abspath(path)
|
||||
|
||||
@ -150,10 +151,11 @@ class Page:
|
||||
self,
|
||||
template_name: str = "simple_page.html",
|
||||
env: types.Optional[Environment] = None,
|
||||
):
|
||||
**kwargs,
|
||||
) -> str:
|
||||
self._prepare_render()
|
||||
return RenderEngine(env).render_chart_to_template(
|
||||
template_name=template_name, chart=self
|
||||
template_name=template_name, chart=self, **kwargs
|
||||
)
|
||||
|
||||
def render_notebook(self):
|
||||
@ -184,7 +186,10 @@ class Page:
|
||||
)
|
||||
|
||||
if CurrentConfig.NOTEBOOK_TYPE == NotebookType.NTERACT:
|
||||
pass
|
||||
return HTML(self.render_embed())
|
||||
|
||||
if CurrentConfig.NOTEBOOK_TYPE == NotebookType.ZEPPELIN:
|
||||
print("%html " + self.render_embed())
|
||||
|
||||
def load_javascript(self):
|
||||
scripts = []
|
||||
|
||||
@ -45,9 +45,10 @@ class Image:
|
||||
path: str = "render.html",
|
||||
template_name: str = "image.html",
|
||||
env: Optional[Environment] = None,
|
||||
**kwargs,
|
||||
) -> str:
|
||||
RenderEngine(env).render_chart_to_file(
|
||||
chart=self, path=path, template_name=template_name
|
||||
chart=self, path=path, template_name=template_name, **kwargs
|
||||
)
|
||||
return os.path.abspath(path)
|
||||
|
||||
|
||||
@ -45,9 +45,10 @@ class Table:
|
||||
path: str = "render.html",
|
||||
template_name: str = "table.html",
|
||||
env: Optional[Environment] = None,
|
||||
**kwargs
|
||||
) -> str:
|
||||
RenderEngine(env).render_chart_to_file(
|
||||
chart=self, path=path, template_name=template_name
|
||||
chart=self, path=path, template_name=template_name, **kwargs
|
||||
)
|
||||
return os.path.abspath(path)
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ class RenderEngine:
|
||||
chart.dependencies = links
|
||||
return chart
|
||||
|
||||
def render_chart_to_file(self, template_name: str, chart: Any, path: str):
|
||||
def render_chart_to_file(self, template_name: str, chart: Any, path: str, **kwargs):
|
||||
"""
|
||||
Render a chart or page to local html files.
|
||||
|
||||
@ -40,12 +40,16 @@ class RenderEngine:
|
||||
:param template_name: The name of template file.
|
||||
"""
|
||||
tpl = self.env.get_template(template_name)
|
||||
html = replace_placeholder(tpl.render(chart=self.generate_js_link(chart)))
|
||||
html = replace_placeholder(
|
||||
tpl.render(chart=self.generate_js_link(chart), **kwargs)
|
||||
)
|
||||
write_utf8_html_file(path, html)
|
||||
|
||||
def render_chart_to_template(self, template_name: str, chart: Any) -> str:
|
||||
def render_chart_to_template(self, template_name: str, chart: Any, **kwargs) -> str:
|
||||
tpl = self.env.get_template(template_name)
|
||||
return replace_placeholder(tpl.render(chart=self.generate_js_link(chart)))
|
||||
return replace_placeholder(
|
||||
tpl.render(chart=self.generate_js_link(chart), **kwargs)
|
||||
)
|
||||
|
||||
def render_chart_to_notebook(self, template_name: str, **kwargs) -> str:
|
||||
tpl = self.env.get_template(template_name)
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
from unittest.mock import patch
|
||||
|
||||
from nose.tools import assert_not_in, eq_
|
||||
|
||||
from pyecharts.charts import Bar
|
||||
from pyecharts.charts.base import Base
|
||||
|
||||
|
||||
@ -19,3 +22,11 @@ def test_base_init_funcs():
|
||||
eq_(c1.width, "110px")
|
||||
eq_(c1.height, "210px")
|
||||
assert_not_in(c1.js_host, ["", None])
|
||||
|
||||
|
||||
@patch("pyecharts.render.engine.write_utf8_html_file")
|
||||
def test_render(fake_writer):
|
||||
my_render_content = "my_render_content"
|
||||
bar = Bar()
|
||||
bar.add_xaxis(["1"]).add_yaxis("", [1]).render(my_render_content=my_render_content)
|
||||
assert "test ok" == "test ok"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user