diff --git a/pkgs/development/python-modules/geoarrow-c/default.nix b/pkgs/development/python-modules/geoarrow-c/default.nix new file mode 100644 index 000000000000..deef6b21947a --- /dev/null +++ b/pkgs/development/python-modules/geoarrow-c/default.nix @@ -0,0 +1,53 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + pytestCheckHook, + pyarrow, + cython, + numpy, + setuptools, + setuptools-scm, +}: +buildPythonPackage rec { + pname = "geoarrow-c"; + version = "0.1.3"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + repo = "geoarrow-c"; + owner = "geoarrow"; + rev = "refs/tags/geoarrow-c-python-${version}"; + hash = "sha256-kQCD3Vptl7GtRFigr4darvdtwnaHRLZWvBBpZ0xHMgM="; + }; + + sourceRoot = "${src.name}/python/geoarrow-c"; + + build-system = [ + cython + setuptools + setuptools-scm + ]; + + env.SETUPTOOLS_SCM_PRETEND_VERSION = version; + + nativeCheckInputs = [ + pytestCheckHook + pyarrow + numpy + ]; + + pythonImportsCheck = [ "geoarrow.c" ]; + + meta = with lib; { + description = "Experimental C and C++ implementation of the GeoArrow specification"; + homepage = "https://github.com/geoarrow/geoarrow-c"; + license = licenses.asl20; + maintainers = with maintainers; [ + cpcloud + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ef18f89beb47..7c622a65bfbb 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4964,6 +4964,8 @@ self: super: with self; { geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { }; + geoarrow-c = callPackage ../development/python-modules/geoarrow-c { }; + geoarrow-types = callPackage ../development/python-modules/geoarrow-types { }; geocachingapi = callPackage ../development/python-modules/geocachingapi { };