1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, fetchpatch
5, pythonOlder
6, pytestCheckHook
7, setuptools
8, packaging
9, toml
10, structlog
11, appdirs
12, pytest-asyncio
13, flaky
14, tornado
15, pycurl
16, aiohttp
17, pytest-httpbin
18, docutils
19, installShellFiles
20}:
21
22buildPythonPackage rec {
23 pname = "nvchecker";
24 version = "2.3";
25
26 # Tests not included in PyPI tarball
27 src = fetchFromGitHub {
28 owner = "lilydjwg";
29 repo = pname;
30 rev = "v${version}";
31 sha256 = "0ikqjlw6v7va69i8qskj1lf07ik84q4n3qgsb7khk520gv2ks3sx";
32 };
33
34 patches = [
35 # Fix test that fail in sandbox build. See https://github.com/lilydjwg/nvchecker/pull/179
36 (fetchpatch {
37 url = "https://github.com/lilydjwg/nvchecker/commit/7366d82bfc3dcf231f7908e259bf2437cf7dafd5.patch";
38 sha256 = "0pwrwa2wyy4i668lk2mqzzy6y3xi08mq3w520b4954kfm07g75a9";
39 })
40 ];
41
42 nativeBuildInputs = [ installShellFiles docutils ];
43 propagatedBuildInputs = [ setuptools packaging toml structlog appdirs tornado pycurl aiohttp ];
44 checkInputs = [ pytestCheckHook pytest-asyncio flaky pytest-httpbin ];
45
46 disabled = pythonOlder "3.7";
47
48 postBuild = ''
49 patchShebangs docs/myrst2man.py
50 make -C docs man
51 '';
52
53 postInstall = ''
54 installManPage docs/_build/man/nvchecker.1
55 '';
56
57 pytestFlagsArray = [ "-m 'not needs_net'" ];
58
59 meta = with lib; {
60 homepage = "https://github.com/lilydjwg/nvchecker";
61 description = "New version checker for software";
62 license = licenses.mit;
63 maintainers = with maintainers; [ marsam ];
64 };
65}