1{ lib
2, buildPythonPackage
3, fetchPypi
4, writeText
5, ipywidgets
6, six
7, docopt
8, tqdm
9, jupyter
10, psutil
11, pyyaml
12, ansible-runner
13, ansible
14, python
15}:
16
17let
18 kernelSpecFile = writeText "kernel.json" (builtins.toJSON {
19 argv = [ python.interpreter "-m" "ansible_kernel" "-f" "{connection_file}" ];
20 codemirror_mode = "yaml";
21 display_name = "Ansible";
22 language = "ansible";
23 });
24in
25buildPythonPackage rec {
26 pname = "ansible-kernel";
27 version = "1.0.0";
28
29 src = fetchPypi {
30 inherit pname version;
31 sha256 = "sha256-UJjm9FpmXSznXtaIR2rVv5YJS/H83FvRkNz09vwoe0c=";
32 };
33
34 propagatedBuildInputs = [ ipywidgets six docopt tqdm jupyter psutil pyyaml ansible-runner ansible ];
35
36 postPatch = ''
37 # remove when merged
38 # https://github.com/ansible/ansible-jupyter-kernel/pull/82
39 touch LICENSE.md
40
41 # remove custom install
42 sed -i "s/cmdclass={'install': Installer},//" setup.py
43 '';
44
45 # tests hang with launched kernel
46 doCheck = false;
47
48 # install kernel manually
49 postInstall = ''
50 mkdir -p $out/share/jupyter/kernels/ansible/
51 ln -s ${kernelSpecFile} $out/share/jupyter/kernels/ansible/kernel.json
52 '';
53
54 meta = with lib; {
55 description = "An Ansible kernel for Jupyter";
56 homepage = "https://github.com/ansible/ansible-jupyter-kernel";
57 license = licenses.asl20;
58 maintainers = [ maintainers.costrouc ];
59 };
60}