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