From 780b0fcd9a372a448bdea76b66e24c8903c33bc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Wed, 9 Jul 2025 02:34:36 +0200 Subject: [PATCH 1/4] pyhon3Packages.lazrs: init at 0.7.0 --- .../python-modules/lazrs/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/lazrs/default.nix diff --git a/pkgs/development/python-modules/lazrs/default.nix b/pkgs/development/python-modules/lazrs/default.nix new file mode 100644 index 000000000000..f0c24b250675 --- /dev/null +++ b/pkgs/development/python-modules/lazrs/default.nix @@ -0,0 +1,41 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + rustPlatform, +}: +buildPythonPackage rec { + pname = "lazrs"; + version = "0.7.0"; + + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-UxkbNRwdn6RfdEcWmDhL9CveFFmTCWRfudTDU/D7fyQ="; + }; + + nativeBuildInputs = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit src; + inherit pname version; + hash = "sha256-GVb34eznC5/TA/SpvDq9uJ9M3nUTfx0KyfRFd4WUyCI="; + }; + + pythonImportsCheck = [ "lazrs" ]; + + meta = { + description = "Python bindings for laz-rs"; + homepage = "https://github.com/laz-rs/laz-rs-python"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + nh2 + chpatrick + ]; + teams = [ lib.teams.geospatial ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 98a11e205415..55a970b938fc 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -7875,6 +7875,8 @@ self: super: with self; { lazr-uri = callPackage ../development/python-modules/lazr-uri { }; + lazrs = callPackage ../development/python-modules/lazrs { }; + lazy = callPackage ../development/python-modules/lazy { }; lazy-imports = callPackage ../development/python-modules/lazy-imports { }; From 9d672390889aff93743682a5cf5596c571cf1204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Wed, 9 Jul 2025 02:50:56 +0200 Subject: [PATCH 2/4] python3Packages.laspy: 2.5.3 -> 2.6.1 --- pkgs/development/python-modules/laspy/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/laspy/default.nix b/pkgs/development/python-modules/laspy/default.nix index 9e68b13137f5..44f1978bcc6e 100644 --- a/pkgs/development/python-modules/laspy/default.nix +++ b/pkgs/development/python-modules/laspy/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "laspy"; - version = "2.5.4"; + version = "2.6.1"; format = "pyproject"; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-7r2/M3mvvAsk5+SBL6xWe/+IDR6FH3AXXSI3Wq7N9+E="; + hash = "sha256-zpy5oYUosqK5hVg99ApN6mjN2nmV5H5LALbUjfDojao="; }; nativeBuildInputs = [ setuptools ]; From 08160185c29d6e9864541be26655ea40a223cd4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Wed, 9 Jul 2025 02:51:41 +0200 Subject: [PATCH 3/4] python3Packages.laspy: Add fast lazrs backend Requires laspy >= 2.6.0 due to this fix: https://github.com/laspy/laspy/commit/036c37e9e16e912c296147d20ecd6c638d7bac78 Older versions error: laspy.errors.LaspyException: Could not initialize a laz backend: LasZipAppender.__new__() missing 1 required positional argument: 'point_count' --- pkgs/development/python-modules/laspy/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/development/python-modules/laspy/default.nix b/pkgs/development/python-modules/laspy/default.nix index 44f1978bcc6e..07211a842228 100644 --- a/pkgs/development/python-modules/laspy/default.nix +++ b/pkgs/development/python-modules/laspy/default.nix @@ -4,6 +4,7 @@ fetchPypi, numpy, laszip, + lazrs, setuptools, pytestCheckHook, pythonOlder, @@ -26,13 +27,17 @@ buildPythonPackage rec { propagatedBuildInputs = [ numpy laszip + lazrs # much faster laz reading, see https://laspy.readthedocs.io/en/latest/installation.html#laz-support ]; nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "laspy" + # `laspy` supports multiple backends and detects them dynamically. + # We check their importability to make sure they are all working. "laszip" + "lazrs" ]; meta = with lib; { From cf6a766055141466fc231db238adb2af4917cb9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Hamb=C3=BCchen?= Date: Wed, 9 Jul 2025 12:47:05 +0200 Subject: [PATCH 4/4] python3Packages.laspy: Add geospatial team maintenance --- pkgs/development/python-modules/laspy/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/python-modules/laspy/default.nix b/pkgs/development/python-modules/laspy/default.nix index 07211a842228..39057be18dcc 100644 --- a/pkgs/development/python-modules/laspy/default.nix +++ b/pkgs/development/python-modules/laspy/default.nix @@ -47,5 +47,6 @@ buildPythonPackage rec { changelog = "https://github.com/laspy/laspy/blob/${version}/CHANGELOG.md"; license = licenses.bsd2; maintainers = with maintainers; [ matthewcroughan ]; + teams = [ teams.geospatial ]; }; }