Showing content from https://github.com/pyecharts/pyecharts/issues/892 below:
pyecharts 全面重构计划 · Issue #892 · pyecharts/pyecharts · GitHub
API 重构
add() 接口拆分,现在的 add() 接口做了太多的事情了。
- 对于有 XY 轴的图表,拆分为 add_xaixs()/add_yaxis() 方法。
- 新增 set_series_opts 方法,用于一次性设置所有 series 配置项。
- 新增 set_base_opts 方法,用于设置 base 配置项,如 dataZoom, legend, tooltip, toolbox 等。
以上的拆分仍能保持接口的简洁性。
图表重构
废除 Overlap 组合图表,改为 chart.overlap() 方法,仅部分图表实现了该方法。
插件机制重构
废除现有的插件机制,仅支持两种情况
- online 模式,使用 pyecharts 官方提供的 assets host,或者部署自己的 remote host。
- local 模式,使用自己本地开启的文件服务提供 assets host,会提供一键启动的脚本,方便部署。
理由
- 现在的 pyecharts 插件机制分散,管理/升级并没有想象中的方便,而且分开为 jupyter/local render 两种情况,这就导致了两个要分开管理,虽然我们的 pip 包可以同时 update 这两种情况引用的 assets,但是由于存在缓存等因素,并不能保证每次都到正确的更新。
- pyecharts 不用再依赖这些包,依赖包和 pyecharts 包版本的管理也是一个容易出问题的地方。
- 减少维护工作,线上热更新。
代码风格重构
- 停止对 Python2.7 版本的支持,仅支持 Python3.5+,是时候全面拥抱 Python3 了
- 所有代码使用 TypeHint,增加可读性
- 所有配置项均 OOP,使用 attrs 重写配置项类。
- 废除 add() 中那堆长得令人发指的参数项列表。
可期待的新特性
- 对 components 的支持,可以使用 pyecharts 制作简单的报表。
- 支持更加原生的 javascript 配置项,方便用户自己定制
兼容性
本次重构基本上不会考虑任何兼容性的问题,这是一个全新版本的 pyecharts。不想再为它打补丁来容忍糟糕的接口设计,是时候重生了。
时间进度
鉴于现在本人的手头上的事情比较多,本次重构本身又需要大量的时间,所以会慢慢推进的,进度肯定快不了,不过它终将会到来!
mimimiracle, Flyraty, kinegratii, jokbull, ZhengRJ001 and 49 moreFlyraty, farfun, erikgqp8645, letterwuyu, marioTang and 4 moremimimiracle, Flyraty, usernamehastaken, farfun, erikgqp8645 and 5 morefarfun, erikgqp8645, letterwuyu, zhxsking, seanzhen and 2 more
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4