2023-08-08 18:13:08 +00:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
buildPythonPackage,
|
|
|
|
fetchPypi,
|
|
|
|
pythonOlder,
|
2024-04-28 04:04:08 +00:00
|
|
|
hatchling,
|
2023-08-08 18:13:08 +00:00
|
|
|
ipywidgets,
|
|
|
|
numpy,
|
|
|
|
pillow,
|
|
|
|
}:
|
|
|
|
|
|
|
|
buildPythonPackage rec {
|
|
|
|
pname = "ipycanvas";
|
2024-09-13 12:26:20 +00:00
|
|
|
version = "0.13.3";
|
2024-04-28 04:04:08 +00:00
|
|
|
pyproject = true;
|
2023-08-08 18:13:08 +00:00
|
|
|
|
|
|
|
disabled = pythonOlder "3.7";
|
|
|
|
|
|
|
|
src = fetchPypi {
|
|
|
|
inherit pname version;
|
2024-09-13 12:26:20 +00:00
|
|
|
hash = "sha256-ToZ8UJsB9cTPwAn32SHjLloSoCmshW54wE/xW2VpLEo=";
|
2023-08-08 18:13:08 +00:00
|
|
|
};
|
|
|
|
|
2023-08-23 02:56:16 +00:00
|
|
|
# We relax dependencies here instead of pulling in a patch because upstream
|
|
|
|
# has released a new version using hatch-jupyter-builder, but it is not yet
|
|
|
|
# trivial to upgrade to that.
|
|
|
|
#
|
|
|
|
postPatch = ''
|
|
|
|
substituteInPlace pyproject.toml \
|
2024-04-28 04:04:08 +00:00
|
|
|
--replace-fail '"jupyterlab>=3,<5",' "" \
|
2023-08-23 02:56:16 +00:00
|
|
|
'';
|
|
|
|
|
2024-04-28 04:04:08 +00:00
|
|
|
build-system = [ hatchling ];
|
2023-08-08 18:13:08 +00:00
|
|
|
|
2024-04-28 04:04:08 +00:00
|
|
|
env.HATCH_BUILD_NO_HOOKS = true;
|
|
|
|
|
|
|
|
dependencies = [
|
|
|
|
ipywidgets
|
|
|
|
numpy
|
|
|
|
pillow
|
|
|
|
];
|
2023-08-08 18:13:08 +00:00
|
|
|
|
|
|
|
doCheck = false; # tests are in Typescript and require `npx` and `chromium`
|
|
|
|
pythonImportsCheck = [ "ipycanvas" ];
|
|
|
|
|
|
|
|
meta = with lib; {
|
|
|
|
description = "Expose the browser's Canvas API to IPython";
|
|
|
|
homepage = "https://ipycanvas.readthedocs.io";
|
|
|
|
changelog = "https://github.com/jupyter-widgets-contrib/ipycanvas/releases/tag/${version}";
|
|
|
|
license = licenses.bsd3;
|
|
|
|
maintainers = with maintainers; [ bcdarwin ];
|
|
|
|
};
|
|
|
|
}
|