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