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.14.1"; 26 pyproject = true; 27 28 disabled = pythonOlder "3.8"; 29 30 src = fetchFromGitHub { 31 owner = "lilydjwg"; 32 repo = "nvchecker"; 33 rev = "v${version}"; 34 hash = "sha256-V2lTGeaiwUsh8IONbZ5GQrqevJMhjeuFLTDF8UdWg8Q="; 35 }; 36 37 nativeBuildInputs = [ 38 setuptools 39 docutils 40 installShellFiles 41 ]; 42 43 propagatedBuildInputs = [ 44 structlog 45 platformdirs 46 tornado 47 pycurl 48 ] ++ lib.optionals (pythonOlder "3.11") [ tomli ]; 49 50 __darwinAllowLocalNetworking = true; 51 52 nativeCheckInputs = [ 53 flaky 54 pytest-asyncio 55 pytest-httpbin 56 pytestCheckHook 57 ]; 58 59 postBuild = '' 60 patchShebangs docs/myrst2man.py 61 make -C docs man 62 ''; 63 64 postInstall = '' 65 installManPage docs/_build/man/nvchecker.1 66 ''; 67 68 pythonImportsCheck = [ "nvchecker" ]; 69 70 pytestFlagsArray = [ "-m 'not needs_net'" ]; 71 72 optional-dependencies = { 73 # vercmp = [ pyalpm ]; 74 awesomeversion = [ awesomeversion ]; 75 pypi = [ packaging ]; 76 htmlparser = [ lxml ]; 77 }; 78 79 meta = with lib; { 80 description = "New version checker for software"; 81 homepage = "https://github.com/lilydjwg/nvchecker"; 82 changelog = "https://github.com/lilydjwg/nvchecker/releases/tag/v${version}"; 83 license = licenses.mit; 84 maintainers = with maintainers; [ ]; 85 }; 86}