nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 geopy,
6 hatchling,
7 httpx,
8 numpy,
9 pytest-asyncio,
10 pytest-cov-stub,
11 pytestCheckHook,
12 python-dateutil,
13 rapidfuzz,
14 scipy,
15 shapely,
16 time-machine,
17 xmltodict,
18}:
19
20buildPythonPackage rec {
21 pname = "avwx-engine";
22 version = "1.9.7";
23 pyproject = true;
24
25 src = fetchFromGitHub {
26 owner = "avwx-rest";
27 repo = "avwx-engine";
28 tag = version;
29 hash = "sha256-j+WT0v1h+dOGW90u+LIVQ0xIE4YzsWRo2E0mGOZUU1A=";
30 };
31
32 build-system = [ hatchling ];
33
34 dependencies = [
35 geopy
36 httpx
37 python-dateutil
38 xmltodict
39 ];
40
41 optional-dependencies = {
42 all = [
43 numpy
44 rapidfuzz
45 scipy
46 shapely
47 ];
48 fuzz = [ rapidfuzz ];
49 scipy = [
50 numpy
51 scipy
52 ];
53 shape = [ shapely ];
54 };
55
56 nativeCheckInputs = [
57 pytest-asyncio
58 pytest-cov-stub
59 pytestCheckHook
60 time-machine
61 ]
62 ++ lib.concatAttrValues optional-dependencies;
63
64 pythonImportsCheck = [ "avwx" ];
65
66 disabledTests = [
67 # Tests require network access
68 "fetch"
69 "test_nbm_all"
70 "test_station_nearest_ip"
71 ];
72
73 meta = {
74 description = "Aviation Weather parsing engine";
75 homepage = "https://github.com/avwx-rest/avwx-engine";
76 changelog = "https://github.com/avwx-rest/avwx-engine/blob/${src.tag}/changelog.md";
77 license = lib.licenses.mit;
78 maintainers = with lib.maintainers; [ fab ];
79 };
80}