1{
2 lib,
3 buildPythonPackage,
4 decorator,
5 entrypoints,
6 fetchPypi,
7 hatchling,
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 = "8.8.0";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchPypi {
28 inherit pname version;
29 hash = "sha256-JATVn4ajqqO9J79rV993e/9cE2PBxuYEA3WdFu1C3Hs=";
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 entrypoints
45 ipykernel
46 ipython
47 jupyter-client
48 psutil
49 python-dateutil
50 pyzmq
51 tornado
52 tqdm
53 traitlets
54 ];
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}