1{
2 lib,
3 aiohttp,
4 buildPythonPackage,
5 fetchFromGitHub,
6 freezegun,
7 metar,
8 pytest-aiohttp,
9 pytest-asyncio,
10 pytest-cov-stub,
11 pytestCheckHook,
12 pythonOlder,
13 setuptools,
14 setuptools-scm,
15 tenacity,
16}:
17
18buildPythonPackage rec {
19 pname = "pynws";
20 version = "2.1.0";
21 pyproject = true;
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "MatthewFlamm";
27 repo = "pynws";
28 tag = "v${version}";
29 hash = "sha256-OKq3IdBr/YDWsmyJLHNoffVp2Q0RV+rZU5rm1Ba0FoY=";
30 };
31
32 build-system = [
33 setuptools
34 setuptools-scm
35 ];
36
37 dependencies = [
38 aiohttp
39 metar
40 ];
41
42 optional-dependencies.retry = [ tenacity ];
43
44 nativeCheckInputs = [
45 freezegun
46 pytest-aiohttp
47 pytest-asyncio
48 pytest-cov-stub
49 pytestCheckHook
50 ]
51 ++ lib.flatten (lib.attrValues optional-dependencies);
52
53 pythonImportsCheck = [ "pynws" ];
54
55 meta = with lib; {
56 description = "Python library to retrieve data from NWS/NOAA";
57 homepage = "https://github.com/MatthewFlamm/pynws";
58 changelog = "https://github.com/MatthewFlamm/pynws/releases/tag/v${version}";
59 license = with licenses; [ mit ];
60 maintainers = with maintainers; [ fab ];
61 };
62}