1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 hatch-vcs,
8 hatchling,
9
10 # dependencies
11 colorcet,
12 numpy,
13 pandas,
14 panel,
15 param,
16 pyviz-comms,
17
18 # tests
19 pytestCheckHook,
20 pytest-asyncio,
21 flaky,
22}:
23
24buildPythonPackage rec {
25 pname = "holoviews";
26 version = "1.20.2";
27 pyproject = true;
28
29 src = fetchFromGitHub {
30 owner = "holoviz";
31 repo = "holoviews";
32 tag = "v${version}";
33 hash = "sha256-QCRVOBMKckPji5rH7iCSnmxbNwtGypMqdfBXilXmngE=";
34 };
35
36 postPatch = ''
37 substituteInPlace pyproject.toml \
38 --replace '"ignore:No data was collected:coverage.exceptions.CoverageWarning",' ""
39 '';
40
41 build-system = [
42 hatch-vcs
43 hatchling
44 ];
45
46 dependencies = [
47 colorcet
48 numpy
49 pandas
50 panel
51 param
52 pyviz-comms
53 ];
54
55 nativeCheckInputs = [
56 pytestCheckHook
57 pytest-asyncio
58 flaky
59 ];
60
61 disabledTests = [
62 # All the below fail due to some change in flaky API
63 "test_periodic_param_fn_non_blocking"
64 "test_callback_cleanup"
65 "test_poly_edit_callback"
66 "test_launch_server_with_complex_plot"
67 "test_launch_server_with_stream"
68 "test_launch_simple_server"
69 "test_server_dynamicmap_with_dims"
70 "test_server_dynamicmap_with_stream"
71 "test_server_dynamicmap_with_stream_dims"
72
73 # ModuleNotFoundError: No module named 'param'
74 "test_no_blocklist_imports"
75 ];
76
77 pythonImportsCheck = [ "holoviews" ];
78
79 meta = {
80 description = "Python data analysis and visualization seamless and simple";
81 changelog = "https://github.com/holoviz/holoviews/releases/tag/v${version}";
82 mainProgram = "holoviews";
83 homepage = "https://www.holoviews.org/";
84 license = lib.licenses.bsd3;
85 maintainers = [ ];
86 };
87}