From 5f6dd3654ce8bb2dd7f6b7f8a8f8dc0950343c11 Mon Sep 17 00:00:00 2001 From: Phillip Cloud <417981+cpcloud@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:28:01 -0400 Subject: [PATCH 1/4] python3.pkgs.geoarrow-types: init at 0.2.0 --- .../python-modules/geoarrow-types/default.nix | 45 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 47 insertions(+) create mode 100644 pkgs/development/python-modules/geoarrow-types/default.nix diff --git a/pkgs/development/python-modules/geoarrow-types/default.nix b/pkgs/development/python-modules/geoarrow-types/default.nix new file mode 100644 index 0000000000000..366fa20eeee43 --- /dev/null +++ b/pkgs/development/python-modules/geoarrow-types/default.nix @@ -0,0 +1,45 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + pytestCheckHook, + pyarrow, + setuptools-scm, +}: +buildPythonPackage rec { + pname = "geoarrow-types"; + version = "0.2.0"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + repo = "geoarrow-python"; + owner = "geoarrow"; + rev = "refs/tags/geoarrow-types-${version}"; + hash = "sha256-LySb4AsRuSirDJ73MAPpnMwPM2WFfG6X82areR4Y4lI="; + }; + + sourceRoot = "${src.name}/geoarrow-types"; + + build-system = [ setuptools-scm ]; + + env.SETUPTOOLS_SCM_PRETEND_VERSION = version; + + nativeCheckInputs = [ + pytestCheckHook + pyarrow + ]; + + pythonImportsCheck = [ "geoarrow.types" ]; + + meta = with lib; { + description = "PyArrow types for geoarrow"; + homepage = "https://github.com/geoarrow/geoarrow-python"; + license = licenses.asl20; + maintainers = with maintainers; [ + cpcloud + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 61fd9424c5461..ef18f89beb471 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-types = callPackage ../development/python-modules/geoarrow-types { }; + geocachingapi = callPackage ../development/python-modules/geocachingapi { }; geocoder = callPackage ../development/python-modules/geocoder { }; From 0f949a0bffabfa6f77fd76ae23ad149792e7c8e2 Mon Sep 17 00:00:00 2001 From: Phillip Cloud <417981+cpcloud@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:57:19 -0400 Subject: [PATCH 2/4] python3.pkgs.geoarrow-c: init at 0.1.3 --- .../python-modules/geoarrow-c/default.nix | 53 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 55 insertions(+) create mode 100644 pkgs/development/python-modules/geoarrow-c/default.nix 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 0000000000000..deef6b21947ae --- /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 ef18f89beb471..7c622a65bfbba 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 { }; From a06ca42c14d0de662cf970e713d174dcd66af608 Mon Sep 17 00:00:00 2001 From: Phillip Cloud <417981+cpcloud@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:57:42 -0400 Subject: [PATCH 3/4] python3.pkgs.geoarrow-pyarrow: init at 0.1.2 --- .../geoarrow-pyarrow/default.nix | 77 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 79 insertions(+) create mode 100644 pkgs/development/python-modules/geoarrow-pyarrow/default.nix diff --git a/pkgs/development/python-modules/geoarrow-pyarrow/default.nix b/pkgs/development/python-modules/geoarrow-pyarrow/default.nix new file mode 100644 index 0000000000000..197962bf15b2b --- /dev/null +++ b/pkgs/development/python-modules/geoarrow-pyarrow/default.nix @@ -0,0 +1,77 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + pytestCheckHook, + geoarrow-c, + pyarrow, + pyarrow-hotfix, + numpy, + pandas, + geopandas, + pyogrio, + pyproj, + setuptools-scm, +}: +buildPythonPackage rec { + pname = "geoarrow-pyarrow"; + version = "0.1.2"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + repo = "geoarrow-python"; + owner = "geoarrow"; + rev = "refs/tags/geoarrow-pyarrow-${version}"; + hash = "sha256-Ni+GKTRhRDRHip1us3OZPuUhHQCNU7Nap865T/+CU8Y="; + }; + + sourceRoot = "${src.name}/geoarrow-pyarrow"; + + build-system = [ setuptools-scm ]; + + disabledTests = [ + # these tests are incompatible with arrow 17 + "test_make_point" + "test_point_with_offset" + "test_linestring_with_offset" + "test_polygon_with_offset" + "test_multipoint_with_offset" + "test_multilinestring_with_offset" + "test_multipolygon_with_offset" + "test_multipolygon_with_offset_nonempty_inner_lists" + "test_interleaved_multipolygon_with_offset" + "test_readpyogrio_table_gpkg" + "test_geometry_type_basic" + ]; + + dependencies = [ + geoarrow-c + pyarrow + pyarrow-hotfix + ]; + + env.SETUPTOOLS_SCM_PRETEND_VERSION = version; + + nativeCheckInputs = [ + pytestCheckHook + numpy + pandas + geopandas + pyogrio + pyproj + ]; + + pythonImportsCheck = [ "geoarrow.pyarrow" ]; + + meta = with lib; { + description = "PyArrow implementation of geospatial data types"; + homepage = "https://github.com/geoarrow/geoarrow-python"; + license = licenses.asl20; + maintainers = with maintainers; [ + cpcloud + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7c622a65bfbba..7fd6858f9d174 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4968,6 +4968,8 @@ self: super: with self; { geoarrow-types = callPackage ../development/python-modules/geoarrow-types { }; + geoarrow-pyarrow = callPackage ../development/python-modules/geoarrow-pyarrow { }; + geocachingapi = callPackage ../development/python-modules/geocachingapi { }; geocoder = callPackage ../development/python-modules/geocoder { }; From 17b05c63e87ad3061fe3f7bf3b12461d43190f4c Mon Sep 17 00:00:00 2001 From: Phillip Cloud <417981+cpcloud@users.noreply.github.com> Date: Thu, 17 Oct 2024 08:57:54 -0400 Subject: [PATCH 4/4] python3.pkgs.geoarrow-pandas: init at 0.1.2 --- .../geoarrow-pandas/default.nix | 52 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 54 insertions(+) create mode 100644 pkgs/development/python-modules/geoarrow-pandas/default.nix diff --git a/pkgs/development/python-modules/geoarrow-pandas/default.nix b/pkgs/development/python-modules/geoarrow-pandas/default.nix new file mode 100644 index 0000000000000..cdf71922b509f --- /dev/null +++ b/pkgs/development/python-modules/geoarrow-pandas/default.nix @@ -0,0 +1,52 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonOlder, + pytestCheckHook, + pandas, + pyarrow, + geoarrow-pyarrow, + setuptools-scm, +}: +buildPythonPackage rec { + pname = "geoarrow-pandas"; + version = "0.1.2"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchFromGitHub { + repo = "geoarrow-python"; + owner = "geoarrow"; + rev = "refs/tags/geoarrow-pandas-${version}"; + hash = "sha256-Ni+GKTRhRDRHip1us3OZPuUhHQCNU7Nap865T/+CU8Y="; + }; + + sourceRoot = "${src.name}/geoarrow-pandas"; + + build-system = [ setuptools-scm ]; + + env.SETUPTOOLS_SCM_PRETEND_VERSION = version; + + dependencies = [ + geoarrow-pyarrow + pandas + pyarrow + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "geoarrow.pandas" ]; + + meta = with lib; { + description = "Python implementation of the GeoArrow specification"; + homepage = "https://github.com/geoarrow/geoarrow-python"; + license = licenses.asl20; + maintainers = with maintainers; [ + cpcloud + ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 7fd6858f9d174..357c283bba659 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4968,6 +4968,8 @@ self: super: with self; { geoarrow-types = callPackage ../development/python-modules/geoarrow-types { }; + geoarrow-pandas = callPackage ../development/python-modules/geoarrow-pandas { }; + geoarrow-pyarrow = callPackage ../development/python-modules/geoarrow-pyarrow { }; geocachingapi = callPackage ../development/python-modules/geocachingapi { };