1{ 2 lib, 3 platformdirs, 4 buildPythonPackage, 5 docutils, 6 fetchFromGitHub, 7 flaky, 8 installShellFiles, 9 pycurl, 10 pytest-asyncio, 11 pytest-httpbin, 12 pytestCheckHook, 13 pythonOlder, 14 setuptools, 15 structlog, 16 tomli, 17 tornado, 18 awesomeversion, 19 packaging, 20 lxml, 21}: 22 23buildPythonPackage rec { 24 pname = "nvchecker"; 25 version = "2.16"; 26 pyproject = true; 27 28 disabled = pythonOlder "3.8"; 29 30 src = fetchFromGitHub { 31 owner = "lilydjwg"; 32 repo = "nvchecker"; 33 tag = "v${version}"; 34 hash = "sha256-HdL3BnjQZzKXtjhQqDst6dJH82g3BONFsGUnwzDMRDA="; 35 }; 36 37 build-system = [ setuptools ]; 38 39 nativeBuildInputs = [ 40 docutils 41 installShellFiles 42 ]; 43 44 propagatedBuildInputs = [ 45 structlog 46 platformdirs 47 tornado 48 pycurl 49 ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; 50 51 __darwinAllowLocalNetworking = true; 52 53 nativeCheckInputs = [ 54 flaky 55 pytest-asyncio 56 pytest-httpbin 57 pytestCheckHook 58 ]; 59 60 postBuild = '' 61 patchShebangs docs/myrst2man.py 62 make -C docs man 63 ''; 64 65 postInstall = '' 66 installManPage docs/_build/man/nvchecker.1 67 ''; 68 69 pythonImportsCheck = [ "nvchecker" ]; 70 71 pytestFlagsArray = [ "-m 'not needs_net'" ]; 72 73 optional-dependencies = { 74 # vercmp = [ pyalpm ]; 75 awesomeversion = [ awesomeversion ]; 76 pypi = [ packaging ]; 77 htmlparser = [ lxml ]; 78 }; 79 80 meta = { 81 description = "New version checker for software"; 82 homepage = "https://github.com/lilydjwg/nvchecker"; 83 changelog = "https://github.com/lilydjwg/nvchecker/releases/tag/v${version}"; 84 license = lib.licenses.mit; 85 maintainers = [ ]; 86 }; 87}