1{ 2 lib, 3 buildPythonPackage, 4 decorator, 5 fetchPypi, 6 hatchling, 7 importlib-metadata, 8 ipykernel, 9 ipython, 10 jupyter-client, 11 psutil, 12 python-dateutil, 13 pythonOlder, 14 pyzmq, 15 tornado, 16 tqdm, 17 traitlets, 18}: 19 20buildPythonPackage rec { 21 pname = "ipyparallel"; 22 version = "9.0.1"; 23 pyproject = true; 24 25 disabled = pythonOlder "3.8"; 26 27 src = fetchPypi { 28 inherit pname version; 29 hash = "sha256-LlksrSIAxalPu/9jm/825uyRIvNLNrL8a01njZ6Y8pw="; 30 }; 31 32 # We do not need the jupyterlab build dependency, because we do not need to 33 # build any JS components; these are present already in the PyPI artifact. 34 # 35 postPatch = '' 36 substituteInPlace pyproject.toml \ 37 --replace '"jupyterlab==4.*",' "" 38 ''; 39 40 build-system = [ hatchling ]; 41 42 dependencies = [ 43 decorator 44 ipykernel 45 ipython 46 jupyter-client 47 psutil 48 python-dateutil 49 pyzmq 50 tornado 51 tqdm 52 traitlets 53 ] 54 ++ lib.optional (pythonOlder "3.10") importlib-metadata; 55 56 # Requires access to cluster 57 doCheck = false; 58 59 pythonImportsCheck = [ "ipyparallel" ]; 60 61 meta = with lib; { 62 description = "Interactive Parallel Computing with IPython"; 63 homepage = "https://ipyparallel.readthedocs.io/"; 64 changelog = "https://github.com/ipython/ipyparallel/blob/${version}/docs/source/changelog.md"; 65 license = licenses.bsd3; 66 }; 67}