diff --git a/pkgs/development/python-modules/avwx-engine/default.nix b/pkgs/development/python-modules/avwx-engine/default.nix new file mode 100644 index 000000000000..ccaaa09e5b09 --- /dev/null +++ b/pkgs/development/python-modules/avwx-engine/default.nix @@ -0,0 +1,84 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + geopy, + httpx, + numpy, + poetry-core, + pytestCheckHook, + pytest-asyncio, + python-dateutil, + pythonOlder, + rapidfuzz, + scipy, + shapely, + time-machine, + xmltodict, +}: + +buildPythonPackage rec { + pname = "avwx-engine"; + version = "1.8.28"; + pyproject = true; + + disabled = pythonOlder "3.10"; + + src = fetchFromGitHub { + owner = "avwx-rest"; + repo = "avwx-engine"; + rev = "refs/tags/${version}"; + hash = "sha256-sxOLhcmTJg/dTrtemr9BcfcBoHTP1eGo8U1ab8iSvUM="; + }; + + postPatch = '' + sed -i -e "/--cov/d" -e "/--no-cov/d" pyproject.toml + ''; + + build-system = [ poetry-core ]; + + dependencies = [ + geopy + httpx + python-dateutil + xmltodict + ]; + + passthru.optional-dependencies = { + all = [ + numpy + rapidfuzz + scipy + shapely + ]; + fuzz = [ rapidfuzz ]; + scipy = [ + numpy + scipy + ]; + shape = [ shapely ]; + }; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + time-machine + ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); + + pythonImportsCheck = [ "avwx" ]; + + disabledTests = [ + # Tests require network access + "fetch" + "test_nbm_all" + "test_station_nearest_ip" + ]; + + meta = with lib; { + description = "Aviation Weather parsing engine"; + homepage = "https://github.com/avwx-rest/avwx-engine"; + changelog = "https://github.com/avwx-rest/avwx-engine/blob/${version}/changelog.md"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9375194ceb5d..b220e4e661d4 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1024,6 +1024,8 @@ self: super: with self; { avro-python3 = callPackage ../development/python-modules/avro-python3 { }; + avwx-engine = callPackage ../development/python-modules/avwx-engine { }; + aw-client = callPackage ../development/python-modules/aw-client { }; aw-core = callPackage ../development/python-modules/aw-core { };