{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, # build-system setuptools, cffi, # dependencies future, jinja2, junos-eznc, lxml, ncclient, netaddr, netmiko, netutils, paramiko, pyeapi, pyyaml, requests, scp, textfsm, ttp, ttp-templates, typing-extensions, # tests pytestCheckHook, ddt, mock, }: buildPythonPackage rec { pname = "napalm"; version = "5.0.0"; format = "pyproject"; disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "napalm-automation"; repo = "napalm"; rev = "refs/tags/${version}"; hash = "sha256-Abw3h69qTFwOOFeAfivqAIWLozErJ1yZZfx7CbMy1AI="; }; nativeBuildInputs = [ setuptools ]; propagatedBuildInputs = [ cffi jinja2 junos-eznc lxml ncclient netaddr netmiko # breaks infinite recursion (netutils.override { napalm = null; }) paramiko pyeapi pyyaml requests scp setuptools textfsm ttp ttp-templates typing-extensions ]; nativeCheckInputs = [ pytestCheckHook mock ddt ]; meta = with lib; { description = "Network Automation and Programmability Abstraction Layer with Multivendor support"; homepage = "https://github.com/napalm-automation/napalm"; license = licenses.asl20; maintainers = with maintainers; [ ] ++ teams.c3d2.members; }; }