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}