1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 jinja2,
6 numpy,
7 pandas,
8 pillow,
9 prettytable,
10 pytestCheckHook,
11 pythonOlder,
12 requests,
13 setuptools,
14 simplejson,
15}:
16
17buildPythonPackage rec {
18 pname = "pyecharts";
19 version = "2.0.8";
20 pyproject = true;
21
22 disabled = pythonOlder "3.8";
23
24 src = fetchFromGitHub {
25 owner = "pyecharts";
26 repo = "pyecharts";
27 tag = "v${version}";
28 hash = "sha256-Aax/HpYJRrfituiAIT7Y6F9v9tX9EmVXtr+4R98tces=";
29 };
30
31 build-system = [ setuptools ];
32
33 dependencies = [
34 jinja2
35 prettytable
36 simplejson
37 ];
38
39 optional-dependencies = {
40 images = [ pillow ];
41 };
42
43 nativeCheckInputs = [
44 numpy
45 pandas
46 pytestCheckHook
47 requests
48 ]
49 ++ lib.flatten (builtins.attrValues optional-dependencies);
50
51 pythonImportsCheck = [ "pyecharts" ];
52
53 disabledTests = [
54 # Tests require network access
55 "test_render_embed_js"
56 "test_display_javascript_v2"
57 "test_lines3d_base"
58 ];
59
60 meta = {
61 description = "Python Echarts Plotting Library";
62 homepage = "https://github.com/pyecharts/pyecharts";
63 changelog = "https://github.com/pyecharts/pyecharts/releases/tag/v${version}";
64 license = lib.licenses.mit;
65 maintainers = with lib.maintainers; [ fab ];
66 };
67}