universe/pkgs/jupyterlab-vim/default.nix

78 lines
1.4 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
yarnConfigHook,
fetchYarnDeps,
jupyterlab,
jupyter,
jupyter-packaging,
hatchling,
hatch-jupyter-builder,
hatch-nodejs-version,
nodejs,
}:
buildPythonPackage rec {
pname = "jupyterlab-vim";
version = "4.1.4";
pyproject = true;
src = fetchFromGitHub {
owner = "jupyterlab-contrib";
repo = "jupyterlab-vim";
rev = "v${version}";
hash = "sha256-VIT60kiBSYfGQ23aiFjpcAdDdpLseOvFPL64dQplkr8=";
};
prePatch = ''
cp ${./yarn.lock} yarn.lock
'';
yarnOfflineCache = fetchYarnDeps {
yarnLock = ./yarn.lock;
hash = "sha256-z82r763EG+QGu2KbZ2PaKueAs9wrpTYul/O/O7It7lY=";
};
nativeBuildInputs = [
yarnConfigHook
nodejs
];
build-system = [
hatchling
hatch-jupyter-builder
hatch-nodejs-version
jupyterlab
jupyter
jupyter-packaging
];
dependencies = [
jupyterlab
jupyter
jupyter-packaging
];
preConfigure = ''
substituteInPlace package.json \
--replace-fail 'jlpm' 'yarn'
'';
preBuild = ''
# Generate the jupyterlab extension files
yarn --offline run build:prod
'';
# has no tests
doCheck = false;
pythonImportsCheck = [ "jupyterlab_vim" ];
meta = with lib; {
description = "Vim notebook cell bindings for JupterLab";
homepage = "https://github.com/jupyterlab-contrib/jupterlab-vim";
license = licenses.mit;
maintainers = [ ];
};
}