at 23.05-pre 1.8 kB view raw
1{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, setuptools, cffi 2, paramiko, requests, future, textfsm, jinja2, netaddr, pyyaml, pyeapi, netmiko 3, junos-eznc, ciscoconfparse, scp, lxml, ncclient, pytestCheckHook, ddt, mock 4, pythonOlder, invoke }: 5 6buildPythonPackage rec { 7 pname = "napalm"; 8 version = "3.4.1"; 9 format = "setuptools"; 10 11 disabled = pythonOlder "3.7"; 12 13 src = fetchFromGitHub { 14 owner = "napalm-automation"; 15 repo = "napalm"; 16 rev = version; 17 sha256 = "sha256-TNWRJtc6+VS6wgJGGvCPDoFQmOKQAyXdjFQo9bPJ2F8="; 18 }; 19 20 patches = [ 21 # netmiko 4.0.0 support 22 (fetchpatch{ 23 url = "https://github.com/napalm-automation/napalm/commit/4b8cc85db3236099a04f742cf71773e74d9dd70e.patch"; 24 excludes = [ "requirements.txt" ]; 25 sha256 = "sha256-DBKp+wiKd+/j2xAqaQL3UCcGQd6wnWcNTsNXBBt9c98="; 26 }) 27 (fetchpatch{ 28 url = "https://github.com/napalm-automation/napalm/commit/4a8b5b1823335dd79aa5269c038a1f08ecd35cdd.patch"; 29 sha256 = "sha256-uiou/rzmnFf4wAvXwmUsGJx99GeHWKJB2JrMM1kLakM="; 30 }) 31 ]; 32 33 postPatch = '' 34 substituteInPlace requirements.txt \ 35 --replace "netmiko>=3.3.0,<4.0.0" "netmiko" 36 ''; 37 38 propagatedBuildInputs = [ 39 cffi 40 paramiko 41 requests 42 future 43 textfsm 44 invoke 45 jinja2 46 netaddr 47 pyyaml 48 pyeapi 49 netmiko 50 junos-eznc 51 ciscoconfparse 52 scp 53 setuptools 54 lxml 55 ncclient 56 ]; 57 58 checkInputs = [ pytestCheckHook mock ddt ]; 59 60 meta = with lib; { 61 description = 62 "Network Automation and Programmability Abstraction Layer with Multivendor support"; 63 homepage = "https://github.com/napalm-automation/napalm"; 64 license = licenses.asl20; 65 maintainers = with maintainers; [ ] ++ teams.c3d2.members; 66 }; 67}