biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / development / python-modules / rasterio / default.nix
blob40033924bfda5dc8a475eb226809ca0be26d2fb6
2   lib,
3   buildPythonPackage,
4   fetchFromGitHub,
5   pytestCheckHook,
6   pythonOlder,
7   stdenv,
8   testers,
10   affine,
11   attrs,
12   boto3,
13   certifi,
14   click,
15   click-plugins,
16   cligj,
17   cython,
18   gdal,
19   hypothesis,
20   ipython,
21   matplotlib,
22   numpy,
23   packaging,
24   pytest-randomly,
25   setuptools,
26   shapely,
27   snuggs,
28   wheel,
30   rasterio, # required to run version test
33 buildPythonPackage rec {
34   pname = "rasterio";
35   version = "1.3.11";
36   format = "pyproject";
38   disabled = pythonOlder "3.8";
40   src = fetchFromGitHub {
41     owner = "rasterio";
42     repo = "rasterio";
43     rev = "refs/tags/${version}";
44     hash = "sha256-Yh3n2oyARf7LAtJU8Oa3WWc+oscl7e2N7jpW0v1uTVk=";
45   };
47   postPatch = ''
48     # remove useless import statement requiring distutils to be present at the runtime
49     substituteInPlace rasterio/rio/calc.py \
50       --replace-fail "from distutils.version import LooseVersion" ""
52     # relax numpy dependency
53     substituteInPlace pyproject.toml \
54       --replace-fail "numpy>=2.0.0,<3.0" "numpy"
55   '';
57   nativeBuildInputs = [
58     cython
59     gdal
60     numpy
61     setuptools
62     wheel
63   ];
65   propagatedBuildInputs = [
66     affine
67     attrs
68     certifi
69     click
70     click-plugins
71     cligj
72     numpy
73     snuggs
74   ];
76   optional-dependencies = {
77     ipython = [ ipython ];
78     plot = [ matplotlib ];
79     s3 = [ boto3 ];
80   };
82   nativeCheckInputs = [
83     boto3
84     hypothesis
85     packaging
86     pytestCheckHook
87     pytest-randomly
88     shapely
89   ];
91   doCheck = true;
93   preCheck = ''
94     rm -r rasterio # prevent importing local rasterio
95   '';
97   pytestFlagsArray = [ "-m 'not network'" ];
99   disabledTests = [
100     # flaky
101     "test_outer_boundless_pixel_fidelity"
102   ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "test_reproject_error_propagation" ];
104   pythonImportsCheck = [ "rasterio" ];
106   passthru.tests.version = testers.testVersion {
107     package = rasterio;
108     version = version;
109     command = "${rasterio}/bin/rio --version";
110   };
112   meta = with lib; {
113     description = "Python package to read and write geospatial raster data";
114     mainProgram = "rio";
115     homepage = "https://rasterio.readthedocs.io/";
116     changelog = "https://github.com/rasterio/rasterio/blob/${version}/CHANGES.txt";
117     license = licenses.bsd3;
118     maintainers = teams.geospatial.members;
119   };