{ 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 = [ ]; }; }