nixpkgs/pkgs/development/python-modules/bokeh/default.nix
2023-09-10 10:51:49 -04:00

136 lines
2.2 KiB
Nix

{ lib
, stdenv
, buildPythonPackage
, fetchPypi
, fetchFromGitHub
, pythonOlder
, substituteAll
, colorama
, contourpy
, jinja2
, mock
, numpy
, nodejs
, packaging
, pandas
, pillow
, tornado
, pytestCheckHook
, pyyaml
, setuptools
, setuptools-git-versioning
, xyzservices
, beautifulsoup4
, channels
, click
, colorcet
, coverage
, firefox
, geckodriver
, isort
, json5
, nbconvert
, networkx
, psutil
, pygments
, pygraphviz
, pytest
, pytest-asyncio
, pytest-xdist
, pytest-timeout
, requests
, scipy
, selenium
, toml
, typing-extensions
}:
buildPythonPackage rec {
pname = "bokeh";
# update together with panel which is not straightforward
version = "3.2.2";
format = "pyproject";
disabled = pythonOlder "3.9";
src = fetchPypi {
inherit pname version;
hash = "sha256-spWbhSTWnsTniGvDZAdEXwqS4fGVMNO/xARSNqG3pv8=";
};
src_test = fetchFromGitHub {
owner = "bokeh";
repo = pname;
rev = "refs/tags/${version}";
hash = "sha256-PK9iLOCcivr4oF9Riq73dzxGfxzWRk3bdrCCpRrTv5g=";
};
patches = [
(substituteAll {
src = ./hardcode-nodejs-npmjs-paths.patch;
node_bin = "${nodejs}/bin/node";
npm_bin = "${nodejs}/bin/npm";
})
];
nativeBuildInputs = [
colorama
nodejs
setuptools
setuptools-git-versioning
];
nativeCheckInputs = [
pytestCheckHook
beautifulsoup4
channels
click
colorcet
coverage
firefox
geckodriver
isort
json5
nbconvert
networkx
psutil
pygments
pygraphviz
pytest
pytest-asyncio
pytest-xdist
pytest-timeout
requests
scipy
selenium
toml
typing-extensions
];
propagatedBuildInputs = [
jinja2
contourpy
numpy
packaging
pandas
pillow
pyyaml
tornado
xyzservices
];
doCheck = false; # need more work
pytestFlagsArray = "tests/test_defaults.py";
pythonImportsCheck = [ "bokeh" ];
preCheck = ''
cp -rv ''${src_test}/tests/* ./tests/
'';
meta = {
description = "Statistical and novel interactive HTML plots for Python";
homepage = "https://github.com/bokeh/bokeh";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ orivej ];
};
}