1{ lib
2, buildPythonPackage
3, decorator
4, entrypoints
5, fetchPypi
6, hatchling
7, ipykernel
8, ipython
9, jupyter-client
10, psutil
11, python-dateutil
12, pythonOlder
13, pyzmq
14, tornado
15, tqdm
16, traitlets
17}:
18
19buildPythonPackage rec {
20 pname = "ipyparallel";
21 version = "8.6.1";
22 format = "pyproject";
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchPypi {
27 inherit pname version;
28 hash = "sha256-o5ql75VgFwvw6a/typ/wReG5wYMsSTAzd+3Mkc6p+3c=";
29 };
30
31 # We do not need the jupyterlab build dependency, because we do not need to
32 # build any JS components; these are present already in the PyPI artifact.
33 #
34 postPatch = ''
35 substituteInPlace pyproject.toml \
36 --replace '"jupyterlab>=3.0.0,==3.*",' ""
37 '';
38
39 nativeBuildInputs = [
40 hatchling
41 ];
42
43 propagatedBuildInputs = [
44 decorator
45 entrypoints
46 ipykernel
47 ipython
48 jupyter-client
49 psutil
50 python-dateutil
51 pyzmq
52 tornado
53 tqdm
54 traitlets
55 ];
56
57 # Requires access to cluster
58 doCheck = false;
59
60 pythonImportsCheck = [
61 "ipyparallel"
62 ];
63
64 meta = with lib;{
65 description = "Interactive Parallel Computing with IPython";
66 homepage = "https://ipyparallel.readthedocs.io/";
67 license = licenses.bsd3;
68 maintainers = with maintainers; [ fridh ];
69 };
70}