at 25.11-pre 1.3 kB view raw
1{ 2 lib, 3 buildPythonPackage, 4 fetchFromGitHub, 5 pythonOlder, 6 7 # build-system 8 setuptools, 9 cffi, 10 11 # dependencies 12 jinja2, 13 junos-eznc, 14 lxml, 15 ncclient, 16 netaddr, 17 netmiko, 18 netutils, 19 paramiko, 20 pyeapi, 21 pyyaml, 22 requests, 23 scp, 24 textfsm, 25 ttp, 26 ttp-templates, 27 typing-extensions, 28 29 # tests 30 pytestCheckHook, 31 ddt, 32 mock, 33}: 34 35buildPythonPackage rec { 36 pname = "napalm"; 37 version = "5.0.0"; 38 format = "pyproject"; 39 40 disabled = pythonOlder "3.7"; 41 42 src = fetchFromGitHub { 43 owner = "napalm-automation"; 44 repo = "napalm"; 45 tag = version; 46 hash = "sha256-Abw3h69qTFwOOFeAfivqAIWLozErJ1yZZfx7CbMy1AI="; 47 }; 48 49 nativeBuildInputs = [ setuptools ]; 50 51 propagatedBuildInputs = [ 52 cffi 53 jinja2 54 junos-eznc 55 lxml 56 ncclient 57 netaddr 58 netmiko 59 # breaks infinite recursion 60 (netutils.override { napalm = null; }) 61 paramiko 62 pyeapi 63 pyyaml 64 requests 65 scp 66 setuptools 67 textfsm 68 ttp 69 ttp-templates 70 typing-extensions 71 ]; 72 73 nativeCheckInputs = [ 74 pytestCheckHook 75 mock 76 ddt 77 ]; 78 79 meta = with lib; { 80 description = "Network Automation and Programmability Abstraction Layer with Multivendor support"; 81 homepage = "https://github.com/napalm-automation/napalm"; 82 license = licenses.asl20; 83 teams = [ teams.c3d2 ]; 84 }; 85}