1{ lib
2, stdenv
3, buildPythonPackage
4, pythonOlder
5, fetchPypi
6, cython
7, geos
8, setuptools
9, numpy
10, pytestCheckHook
11}:
12
13buildPythonPackage rec {
14 pname = "shapely";
15 version = "2.0.1";
16 format = "pyproject";
17
18 disabled = pythonOlder "3.7";
19
20 src = fetchPypi {
21 inherit pname version;
22 hash = "sha256-Zqaxo+cuzpf8hVNqKBR2+bd5TeLmRsqKRRfi48FEaJM=";
23 };
24
25 nativeBuildInputs = [
26 cython
27 geos # for geos-config
28 setuptools
29 ];
30
31 buildInputs = [
32 geos
33 ];
34
35 propagatedBuildInputs = [
36 numpy
37 ];
38
39 nativeCheckInputs = [
40 pytestCheckHook
41 ];
42
43 preCheck = ''
44 rm -r shapely # prevent import of local shapely
45 '';
46
47 disabledTests = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
48 # FIXME(lf-): these logging tests are broken, which is definitely our
49 # fault. I've tried figuring out the cause and failed.
50 #
51 # It is apparently some sandbox or no-sandbox related thing on macOS only
52 # though.
53 "test_error_handler_exception"
54 "test_error_handler"
55 "test_info_handler"
56 ];
57
58 pythonImportsCheck = [ "shapely" ];
59
60 meta = with lib; {
61 changelog = "https://github.com/shapely/shapely/blob/${version}/CHANGES.txt";
62 description = "Manipulation and analysis of geometric objects";
63 homepage = "https://github.com/shapely/shapely";
64 license = licenses.bsd3;
65 maintainers = with maintainers; [ knedlsepp ];
66 };
67}